Cada uno de los métodos manejadores de eventos de ratón toma un objeto 

MouseEvent

 como su argumento. 

Un objeto 

MouseEvent

 contiene información acerca del evento de ratón que ocurrió, incluyendo las coordenadas 

x y y de la ubicación en donde ocurrió el evento. Estas coordenadas se miden desde la esquina superior izquierda 
del componente de la GUI en el que ocurrió el evento. Las coordenadas 

xempiezan en 0 y se incrementan de 

izquierda a derecha. Las coordenadas 

yempiezan en 0 y se incrementan de arriba hacia abajo. Además, los méto-

dos y constantes de la clase 

InputEvent

 (superclase de 

MouseEvent

) permiten a una aplicación determinar cuál 

fue el botón del ratón que oprimió el usuario.

Archivo
Nuevo

Abrir...

Cerrar

Observación de apariencia visual 11.12

Las llamadas a los métodos 

mouseDragged

 y 

mouseReleased

se envían al objeto 

MouseMotionListener

 para el 

objeto

Component

 en el que empezó la operación de arrastre. De manera similar, la llamada al método 

mouseRe-

leased

 al fi nal de una operación de arrastre se envía al objeto 

MouseListener

 para el objeto 

Component

 en el que 

empezó la operación de arrastre.

Java también cuenta con la interfaz 

MouseWheelListener

 para permitir a las aplicaciones responder a la 

rotación del disco en un ratón que tenga uno. Esta interfaz declara el método 

mouseWheelMoved

, el cual recibe un 

evento 

MouseWheelEvent

 como argumento. La clase 

MouseWheelEvent

 (una subclase de 

MouseEvent

) contiene 

métodos que permiten al manejador de eventos obtener información acerca de la cantidad de rotación del disco.

Cómo rastrear eventos de ratón en un objeto 

JPanel

La aplicación 

RastreadorRaton

 (fi guras 11.28 y 11.29) demuestra el uso de los métodos de las interfaces 

MouseListener

 y 

MouseMotionListener

. La clase de aplicación implementa ambas interfaces, para poder escu-

char sus propios eventos de ratón. Observe que los siete métodos de estas dos interfaces deben ser declarados por 
el programador cuando una clase implementa ambas interfaces. Cada evento de ratón en este ejemplo muestra 
una cadena en el objeto 

JLabel

 llamado 

barraEstado

, en la parte inferior de la ventana.

 1 

// Fig. 11.28: MarcoRastreadorRaton.java

 2 

// Demostración de los eventos de ratón.

 3 

import

 java.awt.Color;

 4 

import

 java.awt.BorderLayout;

 5 

import

 java.awt.event.MouseListener;

 6 

import

 java.awt.event.MouseMotionListener;

 7 

import

 java.awt.event.MouseEvent;

 8 

import

 javax.swing.JFrame;

 9 

import

 javax.swing.JLabel;

 10 

import

 javax.swing.JPanel;

 11
 12 

public class

 MarcoRastreadorRaton 

extends

 JFrame

 13 

{

 14  

private

 JPanel panelRaton; 

// panel en el que ocurrirán los eventos de ratón

 15  

private

 JLabel barraEstado; 

// etiqueta que muestra información de los eventos

 16 
 17  

// El constructor de MarcoRastreadorRaton establece la GUI y 

 18  

// registra los manejadores de eventos de ratón

 19  

public

 MarcoRastreadorRaton()

 20  

{

 21  

 

super

(

"Demostracion de los eventos de raton"

 );

 22 
 23  

 

panelRaton = 

new

 JPanel(); 

// crea el panel

 24  

 

panelRaton.setBackground(

Color.WHITE

 ); 

// establece el color de fondo

 25  

 

add( panelRaton, 

BorderLayout.CENTER

 ); 

// agrega el panel a JFrame

 26 
 27  

 

barraEstado = 

new

 JLabel( 

"Raton fuera de JPanel"

 ); 

 28  

 

add( barraEstado, 

BorderLayout.SOUTH

 ); 

// agrega etiqueta a JFrame

Figura 11.28

  |  Manejo de eventos de ratón. (Parte 1 de 3).

11.13 Manejo de eventos de ratón 

501

11_MAQ_CAP_11.indd501

4/19/081:26:12AM