Buscar en los contenidos del blog

Para obtener información de una acción del ratón sobre un determinado elemento de la ventana, o sobre una ventana, se debe crear un método asociado al evento deseado.

Para crear ese tipo de métodos desde NetBeans se dispone del menú contextual o la ventana de Propiedades de la parte derecha que dispone de una pestaña Eventos.

Al crear uno de estos métodos, automáticamente se define un parámetro que recoge información sobre el evento producido. Ese parámetro recibe el nombre evt si se crea automáticamente con NetBeans. Ese es el nombre que debe utilizarse para llamar a los métodos.

Por ejempo, uno de los métodos puede ser:

private void formMouseMoved(java.awt.event.MouseEvent evt)

Eventos

  • mouseMoved: se ha movido el ratón.
  • mouseClicked: se ha hecho clic con algún botón del ratón.
  • mouseWheelMoved: se ha movido la rueda del ratón.
  • mouseDragged: se ha movido el ratón manteniendo pulsado algún botón.
  • mousePressed: se ha pulsado algún botón.
  • mouseReleased: se ha soltado algún botón.
  • mouseEntered: el puntero del ratón está sobre el elemento en el que está definido el evento.
  • mouseExited: el puntero del ratón ha dejado de estar sobre el elemento en el que está definido el evento.

Métodos

  • evt.getX() y evt.getY() permiten obtener la posición (coordenadas X e Y) en la que se encuentra el puntero del ratón respecto al objeto donde se haya definido el evento.
  • evt.getButton() retorna un valor entero con el número del botón pulsado (1: izquierdo, 2: central o rueda, 3: derecho).
  • evt.getClickCount() retorna el número de clic seguidos que se han realizado.
  • evt.getWheelRotation() retorna 1 cada vez que se mueve la rueda hacia atrás y -1 si se hace hacia delante.

Ejemplo

{code}
    private void panel1MouseClicked(java.awt.event.MouseEvent evt)
    {
        System.out.print("Se ha hecho clic en: ");
        System.out.println(evt.getX() + "," + evt.getY());
        System.out.print("Con el botón: ");
        switch(evt.getButton())
        {
            case 1:
                System.out.println("izquierdo");
                break;
            case 2:
                System.out.println("central o la rueda");
                break;
            case 3:
                System.out.println("derecho");
                break;
        }
        System.out.print("Se ha pulsado ");
        System.out.println(evt.getClickCount() + " veces seguidas");
    }                   
{/code}