Bonjour à tous !
J'ai un souci concernant la suppression d'un noeud dans un JTree (marre de me battre avec ce composant...).
J'ai un bouton "Supprimer" qui s'active lors de la sélection d'un noeud. Ce bouton appelle le code suivant :
(C'est du code repompé sur le Java tutoriel Trees)
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 public void removeCurrentNode() { TreePath currentSelection = tree.getSelectionPath(); if (currentSelection != null) { DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) (currentSelection.getLastPathComponent()); MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent()); if (parent != null) { treeModel.removeNodeFromParent(currentNode); return; } } // Either there was no selection, or the root was selected. toolkit.beep(); }
Lors d'un clic sur le bouton le noeud n'est pas supprimé. J'ai débuggué la fonction et n'ai rien trouvé d'anormal (currentNode n'est jamais null, parent non plus).
J'ai eu un souci similaire avec l'insertion où les noeuds insérés n'apparaissaient pas, j'ai résolu le problème en appelant la fonction DefaultTreeModel.nodesWereInserted().
J'ai pensé à un problème similaire pour la suppression mais il semble que la fonction removeNodeFromParent() génère bien les évènements de suppression.
Vers quoi dois-je orienter mes recherches pour résoudre ce problème ?
Merci d'avance pour votre aide
Partager