[JTree]Un seul clic sur un noeud => 2 événements
Salut, j'ai un problème sur un JTree que je n'arrive pas à résoudre.
J'ai une classe FullTextTree qui contient un JTree et qui implémente TreeSelectionListener. Voici le code simplifié de valueChanged() de FullTextTree :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public void valueChanged(TreeSelectionEvent e) {
this.currentNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(this.currentNode == null) {
return;
}
// Récupération de l'objet du noeud
Object nodeObject = this.currentNode.getUserObject();
// Si l'objet contenu dans le noeud cliqué est un NodeElement
if(nodeObject.getClass().equals(NodeElement.class)) {
System.out.println("Noeud cliqué: " + nodeObject
+ "((NodeElement)nodeObject).fullTextOffset: " + ((NodeElement)nodeObject).fullTextOffset
); // debug
System.out.println("fullTextTree:valueChanged: nb listeners: " + this.tree.getTreeSelectionListeners().length); // debug
} |
Le problème est que si je charge un FullTextTree préalablement sérialisé, quand je clique sur un noeud, l'action est exécutée 2 fois. Si ce n'est pas un objet sérialisé cela fonctionne très bien. Il n'y a pourtant qu'un seul listener sur le JTree : System.out.println("fullTextTree:valueChanged: nb listeners: " + this.tree.getTreeSelectionListeners().length); // debug m'affiche bien "1".
Quelqu'un aurait-il un début de solution ?
Merci d'avance et a+ ^^