java - JComboBox,如果所选项目发生更改或选择相同的项目,则触发操作

标签 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”项,但没有任何反应,因为他没有更改所选的项。

最佳答案

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

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

关于java - JComboBox,如果所选项目发生更改或选择相同的项目,则触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420410/

相关文章:

java - 如何在扩展 ListActivity 的类中添加 Admob 广告

java - 自定义 Swing 外观与自定义组件?

java - 在同一个类中为三个按钮实现 ActionListener

java - 删除 Action 监听器

java - 从 Java 中不断变化的 URL 解析 JSON 数组

java - 获取 fragment 到另一个 fragment 的位置

java - 无法将 Java 代码转换为 Scala 代码

java - 如何将按钮 Action 监听器绑定(bind)到文本字段

java - 如何通过鼠标事件改变JLabel的背景颜色?

java - 使用太多的听众是否有潜在的减速?