在 JComboBox 上使用 ItemStateChanged 侦听器重复输出
Duplicate output with ItemStateChanged listener on JComboBox
我有一个 JComboBox,每次更改后我都想打印出所选项目。这是我的 JCombobox 的代码:
mycombobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
我的活动是这样的:
private void mycomboboxItemStateChanged(java.awt.event.ItemEvent evt) {
System.out.println(mycombobox.getSelectedItem());
}
一切正常,但我在控制台中得到重复的输出,如下所示:
输出应如下所示:
Item 2
Item 3
Item 4
Item 1
Item 2
Item 3
没有重复!问题与其他人不同,因为我想打印出结果并且我正在使用另一个事件!我必须做什么,只有当所选项目出现在我的控制台中时?
解决方案是从您的事件中获取 stateChange。
if (evt.getStateChange() == ItemEvent.SELECTED) {
System.out.println(mycombobox.getSelectedItem());
}
输出现在是唯一的。
我有一个 JComboBox,每次更改后我都想打印出所选项目。这是我的 JCombobox 的代码:
mycombobox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
我的活动是这样的:
private void mycomboboxItemStateChanged(java.awt.event.ItemEvent evt) {
System.out.println(mycombobox.getSelectedItem());
}
一切正常,但我在控制台中得到重复的输出,如下所示:
输出应如下所示:
Item 2
Item 3
Item 4
Item 1
Item 2
Item 3
没有重复!问题与其他人不同,因为我想打印出结果并且我正在使用另一个事件!我必须做什么,只有当所选项目出现在我的控制台中时?
解决方案是从您的事件中获取 stateChange。
if (evt.getStateChange() == ItemEvent.SELECTED) {
System.out.println(mycombobox.getSelectedItem());
}
输出现在是唯一的。