为什么在 JComboBox 上 itemStateChanged 在更改时被调用两次?
2022-09-01 03:36:07
我正在使用带有ItemListener的JComboBox。更改该值时,将调用 itemStateChanged 事件两次。第一次调用时,ItemEvent 显示选定的原始项目。在第二次,它显示用户刚刚选择的项目。下面是一些测试代码:
public Tester(){
JComboBox box = new JComboBox();
box.addItem("One");
box.addItem("Two");
box.addItem("Three");
box.addItem("Four");
box.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent e){
System.out.println(e.getItem());
}
});
JFrame frame = new JFrame();
frame.getContentPane().add(box);
frame.pack();
frame.setVisible(true);
}
因此,当我将组合框从“一”更改为“三”时,控制台显示:
One
Three
有没有办法让我能使用ItemEvent来判断它是第二个项目(即用户选择的项目)?如果有人能解释为什么它被叫了两次,那也很好!
谢谢