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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
        arbre.addMouseListener(this);
Et voici mon code de MoussePressed :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.