JComboBoxを含むJDialogを作成し、その下にJComboBoxで選択した値に基づいて別のコンテンツを表示するパネルを作成しました。ダイアログのコンテンツペインに追加されたJPanel(panel_1)と、JComboBox内の可能な各アイテムの追加JPanel(たとえば、2つのアイテムしかない場合はpanel_item_1およびpanel_item_2)を作成しました。私は、JComboBoxの中で、次のリスナークラスを添付していますJComboBoxでJDialogのJPanelを更新する際に問題が発生しました。
public class SelectedListener implements ActionListener {
private SettingsDialog dialog;
public SelectedListener(SettingsDialog dialog){
this.dialog = dialog;
}
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String selected_settings = (String)cb.getSelectedItem();
if(selected_settings.compareTo("Option 1") == 0){
dialog.panel_1 = dialog.panel_item_1;
dialog.panel_1.updateUI();
}else if(selected_settings.compareTo("Option 2") == 0){
dialog.panel_1 = dialog.panel_item_2;
dialog.panel_1.updateUI();
}
}
}
しかし、これは新しいコンテンツとパネルの更新を行いません。なにか提案を?事前に感謝します
'updateUI()'の代わりに 'validate()'を使うのはどうですか? –
アプリケーションコード内のupdateUIを決して "更新"することは決してありません。このメソッドはLAF – kleopatra
私の盲目での使用のために_exclusively_ですか、ifとelse-ifの条件は全く同じですか? – kleopatra