我创建了一个框架。在框架内有一个组合框。 我正在尝试组合框中的每个选项都会创建其他东西(JCheckBox,JRadioButton)。
comboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String selection = comboBox.getSelectedItem().toString();
label3.setText(input[comboBox.getSelectedIndex()]);
//panel_mid.removeAll();
if(comboBox.getSelectedItem().toString().equals("Pilot")){
panel_mid.removeAll();
panel_mid.add(label3,BorderLayout.WEST);
panel_mid.add(text_bottom);
panel_mid.setBorder(new TitledBorder(comboBox.getSelectedItem().toString() + " options"));
panel_mid.add(jchkCaptain);
}
if(comboBox.getSelectedItem().toString().equals("Host")){
panel_mid.removeAll();
panel_mid.add(label3,BorderLayout.WEST);
panel_mid.add(text_bottom);
panel_mid.setBorder(new TitledBorder(comboBox.getSelectedItem().toString() + " options"));
panel_mid.add(regular = new JRadioButton("Regular"));
panel_mid.add(bachir = new JRadioButton("Bachir"));
panel_mid.add(calcelan = new JRadioButton("Calcelan"));
}
if(comboBox.getSelectedItem().toString().equals("Office")){
panel_mid.removeAll();
panel_mid.add(label3,BorderLayout.WEST);
panel_mid.add(text_bottom);
panel_mid.setBorder(new TitledBorder(comboBox.getSelectedItem().toString() + " options"));
}
}
});
选择Pilot时,仅出现JCheckBox shuold。 挑选时主机只出现JRadioButton shuold。 当被选中时,没有什么人会出现。
问题是当我选择主机然后导航然后主持它并不显示JRadioButton。
感谢您的帮助。
答案 0 :(得分:1)
您必须告诉LayoutManager
某些内容已被更改,LayoutManager
没有任何通知程序,您必须以编程方式通知此更改
在完成对已经可见的Swing GUI的所有更改后,只使用container.revalidate()
和container.repaint(variable for JPanels in your case)
作为最后一行代码
使用CardLayout来切换视图(在您的情况下为JPanel
)