Bonjour à tous.
Je suis en train de redéfinir un mouse listener sur un jtree pour définir le comportement suivant :
- simple clic : déroulement ou enroulement du noeud cliqué
- double clic : appel d'une fonction quelconque sans mouvement du noeud.

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
17
18
19
20
public class thisMouseAdapter extends MouseAdapter {
		public void mouseClicked(MouseEvent e) {
		    if (e.getClickCount() == 2) {
		    	BonPrepa bonPrepa =  (BonPrepa) ((DefaultMutableTreeNode) arbre.getLastSelectedPathComponent()).getUserObject();
		    	System.out.println("CLICK 2");
		    }
		    else if (e.getClickCount() == 1) {
		    	System.out.println("CLICK 1");
		    	int selRow = arbre.getRowForLocation(e.getX(), e.getY());
		         if(selRow != -1) {
		        	 TreePath pathSelected = arbre.getSelectionPath();
		        	 if (arbre.isExpanded(pathSelected))
		        		 arbre.collapsePath(pathSelected);
		        	 else
		        		 arbre.expandPath(pathSelected);
		         }
 
		    }
		  }
	}
Ce que se passe malheureusement lorsque je double clic, c'est que mon listener passe à chaque fois par le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (e.getClickCount() == 1)
avant de passer à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if (e.getClickCount() == 2)
comme si je faisais 3 click.
En console ça donne : et ceci peu importe la vitesse à laquelle je clique. J'avoue que j'y perds un peu mon latin (pis bon il est 5h mes neurones commencent sûrement à être out...)

Si quelqu'un a une idée sur le fonctionnement du double clic en général....