Detectar qué botón del ratón se ha pulsado
Artículo por Club Developers · 30 May 2006
2582 vistas
Caso general:
Cuando recibimos una acción de un botón del ratón, tenemos dos posibles soluciones para detectar el botón pulsado: la primera es usar el método getButton() y comparar el resultado con las constantes BUTTON1, BUTTON2 y BUTTON3. Esta solución no es totalmente fiable ya que ña documentación no indica cual es el botón izquierdo.
Por lo tanto, será mejor usar la clase javax.swing.SwingUtilities que gestiona mejor su funcionamiento:
Abrir el menú contextual:
Cuando detectamos el uso del botón derecho, podemos querer mostrar el menú contextual, pero esta implementación no es portable ya que algunos sistemas sólo tienen un botón en el ratón (Mac), otros no usan el derecho para abrir el menú contextual (linux permite configurarlo). Por ello, vamos a usar el método isPopupTrigger() y nos encargaremos de comprobarlo en el mousePressed(java.awt.event.MouseEvent) y mouseReleased(java.awt.event.MouseEvent). Hacerlo en los dos es importante para que el programa funcione en todos los sistemas.
Cuando recibimos una acción de un botón del ratón, tenemos dos posibles soluciones para detectar el botón pulsado: la primera es usar el método getButton() y comparar el resultado con las constantes BUTTON1, BUTTON2 y BUTTON3. Esta solución no es totalmente fiable ya que ña documentación no indica cual es el botón izquierdo.
Por lo tanto, será mejor usar la clase javax.swing.SwingUtilities que gestiona mejor su funcionamiento:
java
/** Boton IZQUIERDO */ /** Boton del MEDIO */ /** Boton DERECHO */ } }
Abrir el menú contextual:
Cuando detectamos el uso del botón derecho, podemos querer mostrar el menú contextual, pero esta implementación no es portable ya que algunos sistemas sólo tienen un botón en el ratón (Mac), otros no usan el derecho para abrir el menú contextual (linux permite configurarlo). Por ello, vamos a usar el método isPopupTrigger() y nos encargaremos de comprobarlo en el mousePressed(java.awt.event.MouseEvent) y mouseReleased(java.awt.event.MouseEvent). Hacerlo en los dos es importante para que el programa funcione en todos los sistemas.