Bonjour a tous,
Voila cela fait plusieurs jours que j'essaye de faire pour que lorsque je fasse clique droit sur un nœud puis que je clique sur le menu "Renommer" de mon JPopupMenu je puisse renommer ce noeud.
Mais je n'y arrive pas 
J'ai réussis a renommer un noeud via ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13
| //On crée notre modèle
this.model = new DefaultTreeModel(racine);
//Et nous allons écouter ce que notre modèle a à nous dire !
this.model.addTreeModelListener(new TreeModelListener()
{
/**
* Méthode appelée lorsqu'un noeud a changé (c'est a dire que l'on change le nom, on le renomme)
*/
public void treeNodesChanged(TreeModelEvent evt) {
ModificationFichier(evt); // Appele une fonction qui s'occupe de gérer la modification des noeuds
}
.... |
mais c'est via un double clic gauche espacé d'1/2 seconde 
J'ai réussis à la faire via ceci aussi :
1 2 3
|
DefaultTreeCellEditor editor = new DefaultTreeCellEditor(arbre,new DefaultTreeCellRenderer(), new DefaultCellEditor(jtxf));
arbre.setCellEditor(editor); |
avec jtxf un JTextField, mais comme précédemment c'est avec un double clique mais ici rapide que je peux éditer mon nœud 
J'ai fais écouter mon JTree par mouseListener :
arbre.addMouseListener(this);
Et voici mon code de MoussePressed :
1 2 3 4 5 6
| public void mousePressed(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)) // Clique droit
{
arbre.setSelectionPath(arbre.getClosestPathForLocation(e.getX(), e.getY())); // Permet de savoir sur quel noeud on a clique
popMenu.show(e.getComponent(), e.getX(), e.getY()); // Permet d'afficher le JPopMenu
} |
Ceci marche trés bien, ce que je n'arrive pas c'est à appeler par exemple la fonction treeNodesChanged lors d'un clique droit, à définir que c'est à partir du moment ou je clique sur renommer que le noeud devienne éditable.
Je vous remercie,
Merci d'avance,
Simon.
Partager