一尘不染

Java JComboBox选择更改侦听器?

java

每当尝试从中进行选择时,我都试图触发一个事件JComboBox

我遇到的问题是没有明显的addSelectionListener()方法。

我尝试使用actionPerformed(),但从未触发。

没有覆盖的模型JComboBox,我没有想法。

如何通知有关JComboBox 选择更改的通知?

编辑:我要道歉。事实证明,我使用的是行为JComboBox不佳的子类,但由于你的回答是好的,因此我将保留该问题。


阅读 479

收藏
2020-03-15

共2个答案

一尘不染

它应该响应ActionListeners,如下所示:

combo.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        doSomething();
    }
});

@John Calsbeek正确地指出了也addItemListener()可以。ItemEvents但是,你可能会得到2 ,一个用于取消选择先前选择的项目,另一个用于选择新项目。只是不要同时使用两种事件类型!

2020-03-15
一尘不染

ItemListener实现的代码示例

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

现在,我们将仅获得选定的项目。

然后只需将侦听器添加到你的JComboBox

addItemListener(new ItemChangeListener());
2020-03-15