Interfaces Listener

Una vez vistos los distintos eventos que se pueden producir, conviene ver cómo se deben gestionar estos eventos. A continuación se detalla cómo se gestionan los eventos según el modelo de Java:

1. Cada objeto que puede recibir un evento (event source), “registra” uno o más objetos para que los gestionen (event listener). Esto se hace con un método que tiene la forma,

eventSourceObject.addEventListener(eventListenerObject);

donde eventSourceObject es el objeto en el que se produce el evento, y eventListenerObject es el objeto que deberá gestionar los eventos. La relación entre ambos se establece a través de una interface Listener que la clase del eventListenerObject debe implementar. Esta interface proporciona la declaración de los métodos que serán llamados cuando se produzca el evento. La interface a implementar depende del tipo de evento. La Tabla 5.3 relaciona los distintos tipos de eventos, con la interface que se debe implementar para gestionarlos. Se indican también los métodos declarados en cada interface.

Es importante observar la correspondencia entre eventos e interfaces Listener. Cada evento tiene su interface, excepto el ratón que tiene dos interfaces MouseListener y MouseMotionListener. La razón de esta duplicidad de interfaces se encuentra en la peculiaridad de los eventos que se producen cuando el ratón se mueve. Estos eventos, que se producen con muchísima más frecuencia que los simples clicks, por razones de eficiencia son gestionados por una interface especial: MouseMotionListener.

Obsérvese que el nombre de la interface coincide con el nombre del evento, sustituyendo la palabra Event por Listener.

2. Una vez registrado el objeto que gestionará el evento, perteneciente a una clase que implemente la correspondiente interface Listener, se deben definir los métodos de dicha interface. Siempre hay que definir todos los métodos de la interface, aunque algunos de dichos métodos puedan estar “vacíos”.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra