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