En un entorno GUI, cuando se produce un movimiento de ratón, se pulsa una tecla, se cierra una ventana, etc. se produce un evento. El evento es recibido por un objeto, como puede ser un botón, una caja de texto, etc. El objeto que recibe el evento, para poder responder a él, debe implementar la interfaz apropiada (event handler) y registrarla como un escuchador (event listener) en el componente GUII (event source u objeto que va recibir el evento) apropiado.
Los eventos se agrupan en función al componente que lo produce o a la acción que lo provoca.
El evento tiene los siguientes elementos:
- La fuente del evento (event source): Es el componente que origina el evento.
- El escuchador (event listener): es el encargado de atrapar o escuchar el evento.
- El manejador del evento (event handler), es el método que permite implementar la interfaz.
El manejador del evento recibe un objeto evento (ActionEvent) que contiene información sobre el evento que se ha disparado, cuando esto sucede, el manejador del evento descifra el evento con dicho objeto y procesa lo solicitado por el usuario o usuaria.
Un componente de una interfaz gráfica dispara o activa los manejadores (event handler) dependiendo del tipo de evento que ha ocurrido. El componente puede tener registrado más de un manejador que maneja el mismo tipo de evento. Un evento puede ser escuchado por más de un manejador de eventos.
El manejador del evento requiere que en la declaración de la clase que maneja el evento (event handler), se indique la interfaz correspondiente al evento (XListener
, donde X es el tipo de evento a escuchar). La clase puede implementar más de un Xlistener
. Si la clase no implementa la interfaz puede ser que extienda a una clase que si la implementa:
public class miClase implements ActionListener{...}
En los componentes que son la fuente del evento (event source) se registra una instancia del manejador del evento (event handler), como un observador o escucha del tipo de eventos que maneja (XListener
). Es decir, se le dice al componente que va a escuchar los eventos del tipo del manejador.
componente.addActionListener( instancia_de_miClaseListener);
En la clase que maneja el evento (event handler) se deben implementar los métodos de la interfaz XListener
que descifren el evento (XEvent
) y lo procesen.
public void actionPerformed(ActionEvent e) {
...//Código que reaccione a la acción
}