2. ¿Qué son los eventos?
• Cada vez que el usuario hace
algo:
– pulsa una tecla o una combinación
de teclas,
– mueve el mouse,
– hace click, o doble click;
– O simplemente se cambia alguna
propiedad de un control,
• Entonces ocurre un evento.
3. ¿Cómo trabajan los eventos?
1. El usuario 2. El componente que recibe la
hace una acción manda un “mensaje”
acción a todos sus “escuchadores”.
3. El escuchador ejecuta
el método apropiado
para esa acción.
4. Los eventos tras bambalinas
Internamente los eventos necesitan:
• Un emisor del evento: Un componente
que accione el evento (botón, menú, lista,
área de texto, etc.). En Java se llaman
“Event Source”.
• Un Receptor del evento: Un objeto que
reciba el evento, y que tenga el método
para ejecutar. En inglés se llama "listener".
5. El Emisor del Evento
• El “Event Source” o fuente del
evento puede ser cualquier
componente de SWING o AWT.
• No todos los componentes
tienen todos los eventos.
6. Tipos de eventos
• Los tipos más utilizados de eventos son cinco:
– De acción (Action)
– Del ratón sin movimiento (Mouse)
– Del ratón con movimiento (MouseMotion)
– Del teclado (Key)
– De enfoque desde el teclado (Focus)
• Para cada uno de estos hay un grupo de
eventos asociados. De acción sólo hay uno.
7. Eventos de Ratón
• Hizo click (mouseClicked)
• Entró en el componente
(mouseEntered)
• Salió del componente
(mouseExited)
• Pulsó un botón
(mousePressed)
– Éste se ejecuta aunque no
suelte el botón.
• Soltó un botón
(mouseReleased)
8. Eventos de Ratón en Movimiento
• Estos eventos pueden
ejecutarse varias veces en un
segundo.
• Son dos:
– Movimiento (mouseMove)
– Arrastre (mouseDrag)
• Arrastrar es mover el mouse
con el botón presionado.
9. Eventos de Teclado
• Tecla (keyTyped)
• Tecla presionada
(keyPressed)
– Este se ejecuta sin necesidad
de que se suelte la tecla.
• Tecla soltada (keyReleased)
10. Eventos de Enfoque
• El “enfoque” es lo que el
teclado está “viendo”, o sea
el componente que
ejecutaría su acción si
presiono la tecla “Enter”.
• Enfocar, o obtener el
enfoque (focusGained)
• Quitar el enfoque
(focusLost)
11. Receptores del Evento
• Para recibir los mensajes del event source,
como ya se dijo, se necesita un listener.
• Para cada tipo de acción hay un listener
especial (es una interfaz) y un objeto de
evento.
– ActionListener (ActionEvent)
– MouseListener (MouseEvent)
– MouseMotionListener (MouseMotionEvent)
– Etc.
12. Receptores del Evento
• Hay dos maneras de “implementar” estas
interfaces:
1. Con una “clase interna”. Ver el ejemplo 3.
2. Con una implementación en la misma clase. Ve
ejemplo 4.
OJO: Cada listener y cada event hay que importarlo.
La mayoría están en java.awt.event.*.