Saltar la navegación

11.7.- Gestión de eventos.

Los componentes usan los eventos para generar acciones en respuesta a los cambios del estado permitidos.
Esquema de formado por cinco figuras distribuidas de la siguiente manera: En la parte izquierda un óvalo de fondo rosado, en cuyo interior se puede leer “GESTIÓN DE EVENTOS”. A su derecha se abre una figura de llave y encontramos cuatro rectángulos de borde redondeado y fondo verde, distribuidos de arriba a abajo. En el  rectángulo situado en la parte superior se puede leer en su interior “CLASE QUE IMPLEMENTE LOS EVENTOS”. Debajo de éste, otro rectángulo, en cuyo interior se puede leer “INTERFAZ QUE DEFINA LOS MÉTODOS”. Debajo de éste, otro en cuyo interior se puede leer “DOS MÉTODOS: AÑADIR Y ELIMINAR OYENTES”. Debajo de éste, el último rectángulo, en cuyo interior se puede leer “IMPLEMENTAR EL MÉTODO QUE GENERA EL EVENTO”.

Los componentes Java utilizan el modelo de delegación de eventos para gestionar la comunicación entre objetos como hemos visto. Para ilustrar el uso de los eventos en un componente JavaBean añadiremos le añadiremos un comportamiento extra que añadirá un nuevo alumno a la base de datos. Tendrá como especial característica que cada vez que se inserte un alumno nuevo que generará un evento que alerte de esta modificación. Esto que en principio puede parecer redundante no lo es en un entorno multiusuario en el que varios clientes se conecten simultáneamente a la base de datos. Para poder implementar esto necesitarás varias cosas:

  • Una clase que implemente los eventos. Esta clase hereda de java.util.EventObject. En el ejemplo se llamará BDModificadaEvent.
  • Una interfaz que defina los métodos a usar cuando se genere el evento. Implementa java.util.EventListener. En este caso la gestión del evento se hará a través del método capturarBDModificada de la interfaz BDModificadaListener. También tenemos un objeto de tipo DBModificadaListener llamado receptor que representa aquellos programas que contienen al componente AlumnosBean susceptibles de recibir el evento.
  • Dos métodos, addEventoListener y removeEventoListener que permitan al componente añadir oyentes y eliminarlos. En principio se deben encargar de que pueda haber varios oyentes. En nuestro caso sólo vamos a tener un oyente, pero se suele implementar para admitir a varios.
  • Implementar el método que lanza el evento, asegurándonos de todos los oyentes reciban el aviso. En este caso lo que se ha hecho es lanzar el método que se creó en la interfaz que describe al oyente.

Finalmente el código de la clase componente queda como aparece en el siguiente enlace:

Autoevaluación

Pregunta

¿Qué elementos interviene en la implementación de un evento?

Respuestas

Una clase que define el evento

Una interfaz que define los métodos a implementar.

Una clase que defina el evento y una interfaz que defina los métodos a implementar.

Retroalimentación