Comportement double click
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:
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:
if (e.getClickCount() == 1)
avant de passer à
Code:
if (e.getClickCount() == 2)
comme si je faisais 3 click.
En console ça donne : et ceci peu importe la vitesse à laquelle je clique. 8O 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....