Java 在JComboBox上使用ItemStateChanged侦听器复制输出
我有一个JComboBox,每次更改后,我都想打印出所选项目。这是我的JCombobox的代码:Java 在JComboBox上使用ItemStateChanged侦听器复制输出,java,combobox,listener,netbeans-8,Java,Combobox,Listener,Netbeans 8,我有一个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) {
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());
}
一切正常,但我在控制台中得到了如下重复输出:
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
没有重复!问题与其他问题不同,因为我想打印结果,而我正在使用另一个事件!我必须做什么,只要选定的项目出现在我的控制台中?解决方案是从事件中获取状态更改
if (evt.getStateChange() == ItemEvent.SELECTED) {
System.out.println(mycombobox.getSelectedItem());
}
输出现在是唯一的。请检查此项。谢谢,您必须从事件中获取状态更改,然后您可以像我的回答中看到的那样为其编写if语句。