Я использую JComboBox с ItemListener на нем. Когда значение изменяется, событие 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);
}
Итак, когда я изменил поле Combo один раз с "One" на "Three", консоль показывает:
One
Three
Есть ли способ, который я могу сказать, используя ItemEvent, возможно, что это второй элемент (т.е. выбранный пользователем элемент)? И если кто-то может объяснить, почему его дважды вызывают, это тоже было бы неплохо!
Спасибо