2017-07-04 35 views
0

我有3个单选按钮和这些按钮下方的面板的摆动框架。对于每个无线按钮选项,面板必须不同。 我必须改变面板,因为这些单选按钮被用户点击。如何选择单选按钮来改变窗体

我尝试:

public RadioFrame() { 
    initComponents(); 
    groupbuttons(); 
    changePanel(); 
} 

private void groupbuttons(){ 
    //code to group these 3 buttons. 
} 

private void changePanel(){ 
    if (jradioButton1.isSelected()){ 
    //change the panel for radiobutton1 
    } 
    if (jradioButton2.isSelected()){ 
    //change the panel for radiobutton2 
    }  if (jradioButton3.isSelected()){ 
    //change the panel for radiobutton3 
    } 
} 

但这只能当框架加载的第一次,当用户选择在程序运行时不同的单选按钮它不会改变。

我该如何解决这个问题?

+1

是不是'JTabbedPane'更好的解决方案? –

+0

@TimothyTruckle,一般来说,但有时候人们想要自定义控件。 –

回答

4

您可以使用带CardLayout的JPanel。每个页面都是JPanel和外部JPanel内的一张卡片。

UPDATE:

从一个卡切换到另一个,你会怎么做:

CardLayout layout = (CardLayout)cardPanel.getLayout(); 
layout.show(cardPanel, "card name"); 

您可以轻松地设计你在NetBeans可视化编辑器的页面。

更新2:

你的情况:

CardLayout layout = (CardLayout)cardPanel.getLayout(); 
if (jradioButton1.isSelected()){ 
    layout.show(cardPanel, "panel1"); 
} 
if (jradioButton2.isSelected()){ 
    layout.show(cardPanel, "panel2"); 
} 
if (jradioButton3.isSelected()){ 
    layout.show(cardPanel, "panel3"); 
}