Bonjour !
Le fonctionnement de l'appli : j'ai un jtree avec une liste de fichier, lorsque je clic sur un noeud des infos s'affichent.
Lorsque je modifie les infos : j'ai besoin d'actualiser le noeud du fichier et de le re-selectionner pour réafficher les infos.
j'ai un jtree :
Le listener de mon jtree :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Jtree jtree jtree.addTreeSelectionListener(new ActionSelectionnerNoeud());
La classe de validation des infos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class ActionSelectionnerNoeud implements TreeSelectionListener { //Action appellée lorsque la selection de l'arbre change : public void valueChanged(TreeSelectionEvent event) { //Mon action => affiche les infos du noeud } }
--> Le code actuel actualise bien le noeud mais ne le re-selectionne pas [1]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 //Actualise un noeud et le selectionne dans l'arborescence et change son nom avec le paramètre d'entré public void actualiserNoeudSelectionne(String nouveauNom) { //Noeud selectionné : TreePath noeudSelectChemin = this.getSelectionPath(); //On récupère le dernier noeud du chemin : DefaultMutableTreeNode dernierNoeudSelect = (DefaultMutableTreeNode) noeudSelectChemin.getLastPathComponent(); //Changement du dernier noeud : dernierNoeudSelect.setUserObject(nouveauNom); //Mise à jour du model : ((DefaultTreeModel) this.treeModel).nodeChanged(dernierNoeudSelect); // [1] Change le noeud, garde la selection //((DefaultTreeModel) this.treeModel).reload(); //[2]Actualise, deselectionne //Re-selection du noeud pour actualisation des infos film : TreePath noeudFuturChemin = new TreePath(dernierNoeudSelect.getPath()); this.setSelectionPath(noeudFuturChemin); this.scrollPathToVisible(noeudFuturChemin); }
--> si j'utilise le [2] : le noeud est actualisé, reselectionné mais 2fois !
Comment faire pour que mon noeud soit re-selectionné (une seule fois) ??
Partager