【问题标题】:Java JComboBox listen a change selection event [duplicate]Java JComboBox侦听更改选择事件[重复]
【发布时间】:2017-07-25 10:08:19
【问题描述】:

我正在尝试聆听 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 方法,即使我不希望这样做,代码也可能会循环... :( 有没有办法只听选择更改而不是通用更改事件? 谢谢

【问题讨论】:

标签: java selection jcombobox


【解决方案1】:

你可以试试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());

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多