Cela doit être un malentendu de mon côté, mais j'ai ce qui suit:
J'ai ajouté un ItemListener à un Jcombobox.
Dans l'écouteur d'élément, je vérifie l'événement s'il est de type ItemSelected.
Si c'est le cas, je mets à jour une valeur dans un JTextPane. Le problème est que cela fonctionne comme suit:
Je clique sur une nouvelle valeur dans le jcombobox et rien n'est changé dans le jtextfield. Je dois effectivement cliquer sur un autre composant, par exemple le jtextfield puis le jtextfield est mis à jour.
Il semble que le focus doit être supprimé de jcombobox afin que la modification d'événement soit envoyée au code de l'élément.
Est-ce que c'est comme ça que ça fonctionne, ou est-ce que je fais quelque chose de mal? Est-il possible de gérer l'événement sans avoir besoin de supprimer le focus?itemlistener obtient l'événement après que le focus est enlevé de jcombobox
MISE À JOUR: Ce mon code et la méthode updateJTextPane est appelée après avoir cliqué sur un autre composant un pas lorsque je sélectionne une nouvelle valeur de la liste déroulante. C'est à dire. combo a la valeur "1", je clique sur la liste déroulante et clique sur "2". L'élément actuellement sélectionné est maintenant "2". Ma méthode n'est pas appelée à ce stade. Je clique sur une deuxième zone de liste déroulante, le second combo a le focus et ensuite ma méthode updateJTextPane() est appelée. Pourquoi?
MISE À JOUR 2:
//Code from Netbeans generator
JComboBox myCbx = new javax.swing.JComboBox();
myCbx.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
myCbx.setName("myCbx"); // NOI18N
//My ItemListener
class myItemListener implements ItemListener{
public void itemStateChanged(ItemEvent ie) {
if (ie.getStateChange() == ItemEvent.SELECTED) { // Item was just selected
updateJTextPane();
}
}
}
//add item listener to combo
myCbx.addItemListener(new myItemListener());
MISE À JOUR 3: myItemListener classe interne est ajouté à 5 plus comboboxes dans le même JDialog si cette question est importante d'une manière que je ne sais pas Merci
Code reformaté; s'il vous plaît revenir si incorrect. – trashgod
@ user384706: Pouvez-vous essayer les deux tests mentionnés dans ma réponse? – Grodriguez
@Grrriguez: Merci pour votre aide.Les tests ont également échoué, mais quand j'ai redémarré mon PC, il n'y avait pas de problème, avec mon code et avec vos tests. Je ne sais pas comment ça s'est passé. Je vais fermer cette question – Cratylus