Download - Swing2
![Page 1: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/1.jpg)
EVENTOS EN SWINGFundamentos de JAVA
![Page 2: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/2.jpg)
¿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.
![Page 3: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/3.jpg)
¿Cómo trabajan los eventos?
2. El componente que recibe laacción manda un “mensaje”a todos sus “escuchadores”.
3. El escuchador ejecutael método apropiado
para esa acción.
1. El usuariohace una
acción
![Page 4: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/4.jpg)
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".
![Page 5: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/5.jpg)
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.
![Page 6: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/6.jpg)
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.
![Page 7: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/7.jpg)
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)
![Page 8: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/8.jpg)
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.
![Page 9: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/9.jpg)
Eventos de Teclado
• Tecla (keyTyped)• Tecla presionada
(keyPressed)– Este se ejecuta sin necesidad
de que se suelte la tecla.
• Tecla soltada (keyReleased)
![Page 10: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/10.jpg)
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)
![Page 11: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/11.jpg)
• 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.
Receptores del Evento
![Page 12: Swing2](https://reader031.vdocumento.com/reader031/viewer/2022020110/557da082d8b42a642d8b4a0e/html5/thumbnails/12.jpg)
• 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.*.
Receptores del Evento