¿alguien puede pensar en una buena forma de ignorar el solo clic que viene con un doble clic en Java?Java: ignorar un solo clic con doble clic?
Busco tener comportamientos diferentes para cada forma que:
- un solo clic pinta punto de mira en el punto de clic
- doble clic selecciona un objeto en la pantalla, sino que debe no pintar puntos de mira en el punto de clic
... ¿alguien puede pensar en una forma de hacerlo? Algún tipo de configuración de temporizador tal vez? Una idea apreciada :-)
< descargo de responsabilidad> ... y sí, sé que estoy cometiendo un error de usabilidad/UI faux pas. </descargo de responsabilidad>
editar # 2:
A pesar de que esto funciona el retraso debido a que el temporizador es enloquecedor - Estoy abandonando esta solución, y utilizando el botón del medio para la selección en lugar de hacer doble clic ...
EDIT:
Gracias cgull - esto es lo que yo era capaz de llegar a dado su confirmación de que no hay manera fácil de hacer esto (tenga en cuenta que si fijo el temporizador < 200 carreras de extraña se observa entre el clic & el temporizador, pero siempre y cuando voy a poner esto en un valor> 200 cosas funcionan igual color de rosa):
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();
}
}
cómo puede funcionar esto? wasDoubleClick no puede ser final, y se usa dentro de otra clase (el ActionListener anónimo) – alessiop86