2016-07-22 1 views
0

Я новичок в Java Swing. Пожалуйста, помогите мне в том, как достичь ниже требования.Firing ItemListener, когда индекс JComboBox установлен программно

При нажатии кнопки мне нужно открыть диалоговое окно. В моем диалоговом окне есть 2 JComboBox. Я написал ItemListner на JComboBox1 для заполнения значений в JComboBox2.

Теперь мне нужно загрузить диалог. Я хочу вручную установить элемент в JComboBox1, а ItemListner должен стрелять по JComboBox2.

Нижеприведенный код, который я использую в методе, который открывает диалог. Но ItemListener не стреляя

JComboBox jComboBox1; 

populateJComboBox(); // Method to populate JComboBox1 

jComboBox1.setSelectedIndex(0); 

ItemListener il = new ItemListener() { 
    public void itemStateChanged(ItemEvent ie) { 
    populateJComboBOx2(); 
    } 
}; 
jComboBox1.addItemListener(il); 
+1

1) Для лучшей помощи рано, оставить [MCVE] или [Short, самодостаточно, Правильный пример] (http://www.sscce.org/). 2) Пожалуйста, изучите общую номенклатуру Java (соглашения об именах - например, 'EveryWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', если это не 'UPPER_CASE_CONSTANT') и использовать ее последовательно. 3) См. Также комментарий, оставшийся после [редактирования вопроса] (http://stackoverflow.com/posts/38522124/revisions). –

ответ

2

вместо ItemListener реализовать ActionListener

public class ComboBoxDemo implements ActionListener { 
... 
    jComboBox1.addActionListener(this) { 
... 
public void actionPerformed(ActionEvent e) { 
    if(e.getSource().equals(jComboBox1)){ 
     populateJComboBox2(); 
    } 
} 
} 

Java Docs Link for more Information

+0

jComboBox1.addActionListener (новый ActionListener() { общественного недействительными actionPerformed (ActionEvent е) { если (e.getSource() равно (jComboBox1)) { populateJComboBox2();. }} }); - Пробовал это, но не работал. Я не уверен, как форматировать код в комментарии. Извините за невозможность форматирования – pankti

+0

1. Повторите ли вы проверку и перерисовку панели в своем populateJComboBox2? 2. добавьте некоторый вывод в MethodListener Methode, чтобы вы могли подтвердить, является ли Событие triggerd или – mayha

Смежные вопросы