Eventos en Java
Eventos en Java
Todo sistema operativo que utiliza interfaces grficas de usuario debe estar constantemente monitorizando el entorno para capturar y tratar los eventos que se producen
El sistema operativo informa de estos eventos a los programas que se estn ejecutando y entonces cada programa decide que hace para
dar respuesta a esos eventos Los eventos pueden estar producidos por el sistema o por el usuario
Eventos
Cada vez que el usuario realiza una determinada accin sobre una aplicacin Java se produce un evento que el sistema operativo transmite a Java.
Java crea un objeto de una determinada clase de evento, y este evento es transmitido a un determinado mtodo para que lo gestione.
El modelo de eventos de Java est basado en delegacin (la responsabilidad de gestionar un evento que ocurre en un objeto - source- la tiene otro objeto-listener)
Fuente de eventos
Los fuentes de eventos (event sources) son objetos que detectan eventos y notifican a los receptores que se han producido dichos eventos
Ejemplos de fuentes : Botn sobre el que se pulsa Campo de texto que pierde el foco Campo de texto sobre el que se presiona una tecla Ventana que se cierra
necesita llamar a un objeto receptor Los receptores de eventos (event listener) son objetos instanciados de una clase que implementa un interface especfico, denominado interface listener. Ejemplos de interfaces listener (paquete java.awt.event) son: ActionListener, AdjustmentListener, ComponentListener, ContainerListener, FocusListener, ItemListener, KeyListener, MouseListener, WindowListener,
Registro
Cuando ya disponemos del objeto fuente y del objeto
receptor es necesario asociarlos, es decir, hay que registrar el objeto receptor de eventos con el objeto fuente de los mismos:
Adaptadores
Los adaptadores (adapter classes) tienen como
objetivo evitar la tediosa tarea de tener que implementar todos los mtodos de las interfaces listener. Por ello existe una clase adaptadora por cada interface listener que tiene ms de un mtodo: MouseAdapter, WindowAdapter, KeyAdapter, MouseMotionAdapter, FocusAdapter, ContainerAdapter y ComponentAdapter, etc. Las clases adaptadoras implementan los mtodos de la interface correspondiente como vacos
miembros de la clase Marco1 que contiene el objeto fuente. Para conseguir esto existen al menos dos posibilidades: Pasar una referencia al Marco1 en el constructor de la clase receptora con lo que ya podr acceder a los miembros de dicha clase Marco1 Crear la clase receptora como una clase interna de la clase Marco1. Una clase interna es una clase definida dentro de otra clase y que tiene acceso a los miembros de la clase que la encierra. Ambas posibilidades son permitidas por Jbuilber
clase que implemente el interface ActionListener que nicamente contiene un mtodo: actionPerformed.
Registro
Finalmente, es necesario registrar el objeto receptor de
(pulsamos el botn) automticamente se llama al mtodo apropiado (actionPerformed), pasndole como parmetro un objeto que es una instancia de ActionEvent.
Registro II
ya comentada en la transparencia 15) Pasndole una referencia a la clase Marco1 en el constructor Vamos a ver tambin como genera Jbuilder ambas posibilidades
Eventos Resumen
Eventos Resumen
Eventos Resumen