2010-01-20 5 views
2

J'ai un JComboBox nommé "jComboBox18" et un JTextArea "jTextArea11". Maintenant, je veux que chaque fois qu'un élément est sélectionné dans la zone de liste déroulante "jComboBox18" sa description correspondante est affichée dans la zone de texte "jTextArea11".Comment mettre à jour JTextArea dans Java Swing?

J'ai ajouté l'auditeur approprié au JComboBox Mais le JTextArea ne montre aucun texte. Le code que je l'ai écrit est la suivante:

private void jComboBox18ItemStateChanged(java.awt.event.ItemEvent evt) { 

    Object item = jComboBox18.getSelectedItem(); 

    if(item != null) { 
     ems.logic.Process selectedProcess = (ems.logic.Process)item; 

     jTextArea11.setText(selectedProcess.getProcessDescription()); 
     jTextArea11.updateUI(); 
     jTextArea11.revalidate(); 
     jTextArea11.validate(); 
    } 
} 

===================== ÉDITÉ =========== ================================

La méthode est appelée à coup sûr. Je change l'état d'un plus combobox qui est également écrit dans cette méthode et son état change avec succès à chaque fois que l'article est sélectionné dans le « jComboBox18 »

+3

Loin de la question: Je l'espère vraiment dans votre développement code réel les variables sont nommées différentes. – Mnementh

+0

Pour le problème directement: Pouvez-vous vérifier, que ce code est appelé si vous sélectionnez un nouvel élément? – Mnementh

+0

Une autre fonction de la méthode est donc réellement exécutée. Nous devons donc enquêter plus avant. Le code est gardé par une clause if. Est-ce que l'article! = Null, ou demandé différemment: est-ce que la branche if est entrée? – Mnementh

Répondre

2

Je pense que cela devrait fonctionner. En fait, vous ne devriez avoir besoin que de l'appel setText(). Ma conjecture est que votre fonction n'est pas appelée pour une raison quelconque. Mettez un point d'arrêt dans votre code et assurez-vous qu'il est appelé.

0

Dans le code affiché méthode est nommé jComboBox18ItemStateChanged. Êtes-vous sûr que cette méthode est appelée? Le ItemListener pour une JComboBox doit implémenter l'interface ItemListener qui déclare que les sous-classes doivent mettre en œuvre la méthode ci-dessous.

void itemStateChanged(ItemEvent e); 

Comment ajoutez-vous une instance de ItemListener à votre JComboBox?

EDIT:
Après avoir lu votre édition et les commentaires les uns des autres que je peux possiblity penser est que: vous avez un écouteur qui est déclenché lorsque le textarea est mis à jour et probablement SITI dévissant les changements effectués dans l'auditeur JComboBox.