Bonjour a tous j'ai essayer de faire le titre le plus clair possible.
J'ai 2 listes qui se font face, chacune a son propre ListSelectionListenner.
Les 2 listes sont dans une classe qui hérite de JFrame et implémente Observer.
Les 2 listenners sont dans 2 classes séparées qui héritent de Observable en implémentant ListSelectionListenner
Dans le liste1Listenner
notifyObservers va lancer cette méthode update :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void valueChanged(ListSelectionEvent e) { JList list = (JList)e.getSource(); if (!list.getValueIsAdjusting() ){ // creation d'un tableau d'objet grace a la selection list.getSelectedValue() this.setChanged(); this.notifyObservers(unTableauDObjet); }
Le problème survient quand je fait la séquence suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void update(Observable obs, Object obj) { if(obs==this.liste1Select){ // ...... Construction d'un tableau d'elements avec obj this.modelList2.clear(); for (Element elem : elements){ this.modelList2.addElement(elem); } } else if (obs==this.liste2Select){ // ...... mise a jour d'un textField avec un String } }
1 - Sélection dans la liste1
>La MAJ de la liste2 s'effectue
2 - Sélection dans la liste2
(La MAJ du JtextField s'effectue)
3 - Sélection dans la liste1
>Null Pointer Exception dans le listenner de la Liste2
4 - Sélection d'un autre élément dans la liste1
>Retour étape 1
Voici le code du liste2Listenner :
C'est a croire que le listenner de la liste2 est appelé alors que je clique sur la liste1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void valueChanged(ListSelectionEvent e) { JList list = (JList)e.getSource(); if (!list.getValueIsAdjusting() ){ // ...... récupération d'un String dans l'objet sélectionné via list.getSelectedValue() this.setChanged(); this.notifyObservers(monString); } }
Merci de l'aide que vous pourrez m'apporter.
![]()
Partager