Java 在JComboBox上使用ItemStateChanged侦听器复制输出

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) {

我有一个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());

} 
一切正常,但我在控制台中得到了如下重复输出:

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语句。