我正在尝试监听 Java JComboBox 中的选择更改。我尝试使用 ActionListener 但问题是这样的:动作侦听器执行类似的操作
public void actionPerformed(ActionEvent e){
JComboBox<String> source = ((JComboBox<String>)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 方法,即使我不希望这样做,并且代码可能会循环...:(
有没有办法只监听选择更改而不监听通用更改事件?
谢谢
你可以试试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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)