Tutorial de Java

Receptores de Eventos

Anterior | Siguiente
Un interfaz EventListener tendrá un método específico para cada tipo de evento distinto que trate la clase de evento. Por ejemplo, el interfaz FocusEventListener define los métodos focusGained() y focusLost(), uno para cada tipo de evento que trata la clase FocusEvent.

Los interfaces de bajo nivel que define la versión del JDK 1.2 son los siguientes:

    java.util.EventListener
      java.awt.event.ComponentListener
      java.awt.event.ContainerListener
      java.awt.event.FocusListener
      java.awt.event.KeyListener
      java.awt.event.MouseListener
      java.awt.event.MouseMotionListener
      java.awt.event.WindowListener

Si se compara esta lista con la lista anterior de clases de eventos de bajo nivel, se ve claramente que hay definido un interfaz receptor por cada una de las clases más bajas en jerarquía de las clases de eventos, excepto para la clase MouseEvent en que hay dos interfaces receptores diferentes.

Los interfaces de nivel semántico que define el AWT en la versión del JDK 1.2 son:

    java.util.EventListener
      java.awt.event.ActionListener
      java.awt.event.AdjustmentListener
      java.awt.event.ItemListener
      java.awt.event.TextListener

La correspondencia aquí entre interfaces de nivel semántico y clases evento de nivel semántico es uno a uno.

Como los receptores se registran para manejar tipos de eventos determinados, solamente serán notificados de esos tipos de eventos y no llegarán a ellos otros tipos de eventos para los que no están registrados. Esto es justamente lo contrario a lo que se utilizaba en el modelo de Propagación, en donde todos los eventos se pasaban a un controlador de eventos, fuesen de su interés o no. Este filtrado de eventos mejora el rendimiento, especialmente con los eventos que se producen con mucha frecuencia, como son los de movimiento del ratón.

Navegador

Home | Anterior | Siguiente | Indice | Correo