Java JComboBox监听更改选择事件

我正在尝试在Java JComboBox中听取选择的更改。 我试图使用ActionListener但问题是这样的:动作监听器做这样的事情

public void actionPerformed(ActionEvent e){ JComboBox source = ((JComboBox)e.getSource()); String selected = source.getItemAt(source.getSelectedIndex()); /*now I compare if the selected string is equal to some others and in a couple of cases I have to add elements to the combo*/ } 

您可以注意到,当我需要向组合添加元素时,另一个事件被触发并且再次调用actionPerformed方法,即使我不想要它,并且代码可能循环… :(有没有办法只听选择更改而不是一般的更改事件?谢谢

您可以尝试ItemListener接口的itemStateChanged()方法:

 class ItemChangeListener implements ItemListener{ @Override public void itemStateChanged(ItemEvent event) { if (event.getStateChange() == ItemEvent.SELECTED) { Object item = event.getItem(); // do something with object } } } 

并将监听器添加到您的JComboBox:

 source.addItemListener(new ItemChangeListener());