Para efectos de ejemplo utilizaremos un jLabel para detectar los doble clicks realizados sobre él; pero puede usarse para cualquier otro tipo de componente que soporte los eventos del mouse tales como el formulario, un panel, un botón, etc.
Comenzamos arrastrando un jLabel al formulario, luego damos click derecho al jLabel, del menú desplegable seleccionamos Events y del submenú de éste elegimos Mouse y de las opciones de éste último seleccionamos mouseClicked. Lo que nos llevará al código que debe implementarse dentro del método mouseClicked de la interface MouseListener, el cual será el siguiente:
private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount()==2)
System.out.println("DOBLE CLICK");
}
Con el código anterior lo que conseguimos es que cada vez que se realiza un doble click sobre el jLabel, se imprime por consola el texto "DOBLE CLICK". Lo interesante es que el evento por sí solo controla el tiempo entre un click y el siguiente, por lo que no hay problema si por ejemplo damos un click y esperamos demasiado tiempo y volvemos a dar otro click, éste ya no es considerado como un evento doble click. Por lo que solamente el programa considerará doble click, cuando el usuario realice los clicks del ratón de forma rápida y consecutiva; de esta manera entendemos que el método getClickCount devuelve el número de clicks realizados por el usuario de forma rápida y consecutiva.
De forma similar también podemos detectar los triple clicks (3 clicks), o en un remoto caso 4, 5, etc clicks realizados sobre algún componente.
Como siempre los softwares utilizados fueron el IDE Netbeans 6.5 y Java.
Código Fuente: download/descargar
Interesante entrada. Gracias por la información, siempre nos vendrá bien. Saludos.
ResponderEliminarRamón
@Ramon, gracias por su siempre gentil participación, me alegra que siga siendo un blogger tan entusiasta.
ResponderEliminarte amooooooooooooooooooooooooo
ResponderEliminarMe rompi la cabeza una semana hasta que encontre esto.
Gracias
Muchas gracias. Funciona muy bien con JTable, al hacer doble click en una fila o celda.
ResponderEliminar