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.
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
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); } } } }avant de passer à
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (e.getClickCount() == 1)comme si je faisais 3 click.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (e.getClickCount() == 2)
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...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CLICK 1 CLICK 2
Si quelqu'un a une idée sur le fonctionnement du double clic en général....
Partager