Quelqu'un peut-il penser à un bon moyen d'ignorer le simple clic qui vient avec un double-clic en Java?Java: ignorer un simple clic sur un double clic?
Je suis à la recherche d'avoir des comportements différents pour chacun tel que:
- un seul clic peint réticules sur le point de clic
- double clic sélectionne un objet sur l'écran, mais ne devrait pas peinture réticule sur le point de clic
... Quelqu'un peut-il penser à un moyen de faire cela? Une sorte d'installation de minuterie peut-être? Une idée appréciée :-)
< avertissement> ... et oui, je sais que je commets une usabilité la plus odieuse/faux pas de l'interface utilisateur. </disclaimer>
EDIT # 2:
Même si cela fonctionne le retard dû à la minuterie est affolant - j'abandonne cette solution, et en utilisant le clic du milieu pour la sélection au lieu de double-cliquez sur ...
EDIT:
Merci cgull - ce que j'ai pu trouver donné la confirmation qu'il n'y a aucun moyen facile de faire cela (notez que si je mets la minuterie < 200 course impair est vu entre le clic & la minuterie, mais aussi longtemps que je ceci à une valeur> 200 choses fonctionnent Peachy):
public void mouseClicked(MouseEvent e) {
System.out.println("Click at (" + e.getX() + ":" + e.getY() + ")");
if (e.getClickCount() == 2) {
System.out.println(" and it's a double click!");
wasDoubleClick = true;
}else{
Integer timerinterval = (Integer)
Toolkit.getDefaultToolkit().getDesktopProperty(
"awt.multiClickInterval");
timer = new Timer(timerinterval.intValue(), new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (wasDoubleClick) {
wasDoubleClick = false; // reset flag
} else {
System.out.println(" and it's a simple click!");
}
}
});
timer.setRepeats(false);
timer.start();
}
}
comment peut-il fonctionner? wasDoubleClick ne peut pas être final, et il est utilisé dans une autre classe (l'ActionListener anonyme) – alessiop86