J'utilise une JComboBox avec un ItemListener sur celle-ci. Lorsque la valeur est modifiée, l'événement itemStateChanged est appelé deux fois. Au premier appel, l'événement ItemEvent montre l'élément sélectionné à l'origine. Au deuxième appel, il affiche l'élément qui vient d'être sélectionné par l'utilisateur. Voici un peu de code de test :
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);
}
Ainsi, lorsque j'ai modifié la boîte combo une fois de "Un" à "Trois", la console s'affiche :
One
Three
Y a-t-il un moyen de savoir, en utilisant l'ItemEvent, qu'il s'agit du deuxième élément (c'est-à-dire l'élément sélectionné par l'utilisateur) ? Et si quelqu'un peut expliquer pourquoi il est appelé deux fois, ce serait bien aussi !
Merci