gpt4 book ai didi

java - JCombobox - 仅在值更改时执行 actionlistener

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:57:33 26 4
gpt4 key购买 nike

我有一个 JComboBox,我有一个监听器连接到它。

现在,每次用户从下拉列表中“选择”某些内容时,事件都会触发,即使他们只是重新选择了之前选择的值。

有没有办法只在组合框的选定值与选定之前不同时才触发事件?

我想我可以将组合框的值存储在不同的字段中,并在每次触发事件时对其进行比较,这似乎有些矫枉过正。我有 20 个左右这样的组合框。我宁愿没有 20 个以上的变量来存储值,这样事件就不会触发。

必须有更好的方法。

谢谢您的帮助!

最佳答案

您是否考虑过使用 ItemListener 而不是 ActionListener?

 JComboBox<String> cb = new JComboBox<>(new String[] {"Stack", "Over", "Flow"});
cb.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
System.out.println("Change");
}
});

它触发两次,因为一个项目变为 DESELECTED 而另一个变为 SELECTED。两者都会触发事件。您可以通过调用 e.getStateChange() 来检查发生了哪一个。

关于java - JCombobox - 仅在值更改时执行 actionlistener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com