[JTree] Re-selectionner une valeur déjà sélectionnée dans un JTree
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 :
Code:
1 2
| Jtree jtree
jtree.addTreeSelectionListener(new ActionSelectionnerNoeud()); |
Le listener de mon jtree :
Code:
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
}
} |
La classe de validation des infos :
Code:
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);
} |
--> Le code actuel actualise bien le noeud mais ne le re-selectionne pas [1]
--> si j'utilise le [2] : le noeud est actualisé, reselectionné mais 2fois !
Comment faire pour que mon noeud soit re-selectionné (une seule fois) ??