EVENTOS EN SWING
 Fundamentos de JAVA
¿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.
¿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.
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".
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.
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.
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)
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.
Eventos de Teclado
• Tecla (keyTyped)
• Tecla presionada
  (keyPressed)
   – Este se ejecuta sin necesidad
     de que se suelte la tecla.
• Tecla soltada (keyReleased)
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)
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.
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.*.

Swing2

  • 1.
    EVENTOS EN SWING Fundamentos de JAVA
  • 2.
    ¿Qué son loseventos? • 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 loseventos? 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 trasbambalinas 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 delEvento • 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ónen 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.*.