Swing y JFC (Java Foundation Classes)

Los eventos Mouse-motion nos dicen cuando el usuario usa el rat�n (u otro dispositivo similar) para mover el cursor sobre la pantalla.

.�M�todos de Evento Mouse-Motion

El interface MouseMotionListener y su correspondiente clase adaptador, MouseMotionAdapter, contienen estos m�todos.

void mouseDragged(MouseEvent)
Llamado en respuesta a un movimiento del rat�n por parte del usuario mientras mantiene pulsa uno de los botones delr at�n. Este evento es disparado por el componente que dispar� el evento mouse-pressed m�s reciente, incluso si el cursor ya no est� sobre ese componente.
void mouseMoved(MouseEvent)
Llamado en respuesta a un movimiento del rat�n por parte del usuario sin ning�n bot�n puslado. El evento es disparado por el eventos que se encuentra actualmente debajo del cursor.

.�Ejemplos de Manejo de Eventos Mouse-Motion

El siguiente applet contiene un oyente de mouse-motion. Es exactamente igual que el applet de la p�gina C�mo escribir un Oyente de Mouse, excepto en que sustituye MouseMotionListener por MouseListener, e implementa los m�todo mouseDragged y mouseMoved en vez de los m�todo del oyente de mouse. Puedes encontrar el c�digo del applet en MouseMotionEventDemo.java y en BlankArea.java.

Esto es una imagen del GUI del Applet. Para ejecutarlo, pulsa sobre ella. El applet aparecer� en una nueva ventana de tu navegador..

Prueba esto:
  1. Mueve el cursor dentro del rect�ngulo amarillo de la parte superior del applet.

    Ver�s uno o m�s eventos mouse-moved.

  2. Pulsa y mant�n un bot�n de rat�n y muevelo hasta que el cursor se salga del rect�ngulo amarillo.

    Ver�s eventos mouse-dragged.

El siguiente c�digo contiene el manejo de eventos de la clase RectangleDemo.java. Esta clase maneja tres clases de eventos: pulsacion de rat�n, arrastre de rat�n y liberaci�n de rat�n. Estos eventos corresponden a los m�todos mousePressed (de MouseListener), mouseDragged (de MouseMotionListener), mouseReleased (de MouseListener). As�, esta clase debe implementar tanto MouseListener como MouseMotionListener. Para evitar tener que manejar demasiados m�todos vacios, esta clase no implementar MouseListener directamente. En su lugar, extiende MouseAdapter e implementa MouseMotionListener.

...//where initialization occurs:
    MyListener myListener = new MyListener();
    addMouseListener(myListener);
    addMouseMotionListener(myListener);
...
class MyListener extends MouseAdapter 
                 implements MouseMotionListener {
    public void mousePressed(MouseEvent e) {
        int x = e.getX();
        int y = e.getY();
        currentRect = new Rectangle(x, y, 0, 0);
        repaint();
    }

    public void mouseDragged(MouseEvent e) {
        updateSize(e);
    }

    public void mouseMoved(MouseEvent e) {
        //Do nothing.
    }

    public void mouseReleased(MouseEvent e) {
        updateSize(e);
    }

    void updateSize(MouseEvent e) {
        int x = e.getX();
        int y = e.getY();
        currentRect.setSize(x - currentRect.x,
                            y - currentRect.y);
        repaint();
    }
}

.�M�todos de Eventos usados por oyentes de Mouse-Motion

Cada evento mouse-motion tiene un s�lo par�metro -- y no se llama MouseMotionEvent! En su lugar cada evento mouse-motion tiene un m�todo con un argumento MouseEvent. Puedes ver la p�gina La clase MouseEvent para m�s informaci�n sobre c�mo utilizar objetos MouseEvent.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR