JComboBox,如果所选项目已更改或相同,则触发操作

时间:2019-03-29 15:10:02

标签: java swing actionlistener jcombobox itemlistener

我正在使用JComboBox,如果选择的项目被更改,则触发另一帧的打开。

这是代码示例。

String[] liste = {"Stack", "Over", "Flow"};
JComboBox comboBox = new JComboBox(liste);
comboBox.addItemListener(e -> {
    if(e.getStateChange() == 2) { //because that listener is called twice, when the item is unselected and the new is selected
        FramePopUp popUp1 = new FramePopUp(); //Class that extends JFrame
    }
});

我的问题是,当用户选择两次相同的项目时,我也希望触发此框架。

例如:

在这种情况下,用户选择项目“ Over”,弹出框架,用户处理框架及其必须提供的信息,然后关闭框架。

他记得他忘记填写一个信息,所以他重新选择了“结束”项目,但是没有任何反应,因为他没有更改所选项目。

1 个答案:

答案 0 :(得分:2)

只需添加一个ActionListener而不是ItemListener。

另请参阅JCombobox - Only execute actionlistener when value changes,其中有人遇到与您相反的问题