Progra1

Solo disponible en BuenasTareas
  • Páginas : 8 (1978 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de diciembre de 2011
Leer documento completo
Vista previa del texto
Muchos interfaces EventListener están diseñados para recibir múltiples clases de eventos, por ejemplo, el interfaz MouseListener puede recibir eventos de pulsación de botón, al soltar el botón, a la recepción del cursor, etc. El interfaz declara un método para cada uno de estos subtipos. Cuando se implementa un interfaz, es necesario redefinir todos los métodos que se declaran en ese interfaz,incluso aunque se haga con métodos vacíos. En la mayoría de las ocasiones, no es necesario redefinir todos los métodos declarados en el interfaz porque no son útiles para la aplicación.
Por ello, el AWT proporciona un conjunto de clases abstractas adaptadores (Adapter) que coinciden con los interfaces. Cada clase adaptador implementa un interfaz y redefine todos los métodos declarados por elinterfaz con métodos vacíos, con lo cual se satisface ya el requerimiento de la redefinición de todos los métodos.
Se pueden definir clases Receptor extendiendo clases adaptadores, en vez de implementar el interfaz receptor correspondiente. Esto proporciona libertad al programador para redefinir solamente aquellos métodos del interfaz que intervienen en la aplicación que desarrolla.
De nuevo, hay querecordar que todos los métodos declarados en un interfaz corresponden a los tipos de eventos individuales de la clase de eventos correspondiente, y que el objeto Fuente notifica al Receptor la ocurrencia de un evento de un tipo determinado invocando al método redefinido del interfaz.
Las clases Adaptadores que se definen en el JDK 1.2 son las que se indican a continuación:java.awt.ComponentAdapter
java.awt.FocusAdapter
java.awt.KeyAdapter
java.awt.MouseAdapter
java.awt.MouseMotionAdapter
java.awt.WindowAdapter
En el ejemplo java1102.java, se modifica el primer programa de este capítulo, en que la ejecución no terminaba cuando se cerraba la ventana; ahora elprograma termina cuando el usuario cierra la ventana, ejecutando la sentencia de salida en el controlador de eventos adecuado. El programa implementa un objeto EventSource que notifica a un objeto Listener la ocurrencia de un evento en la clase Window, y notifica a otro objeto Listener la ocurrencia de un evento en la clase Mouse.

Si se compila y ejecuta el ejemplo, cada vez que se pulse elbotón del ratón con el cursor dentro de la ventana, aparecerán las coordenadas en las que se encuentra el cursor, tal como muestra la figura anterior.
En el caso más simple, los eventos de bajo nivel del nuevo modelo de Delegación de Eventos, se pueden controlas siguiendo los pasos que se indican a continuación:
* Definir una clase Listener, receptor, para una determinada clase de evento queimplemente el interfaz receptor que coincida con la clase de evento, o extender la clase adaptadora correpondiente
* Redefinir los métodos del interfaz receptor para cada tipo de evento específico de la clase evento, para poder implementar la respuesta deseada del programa ante la ocurrencia de un evento. Si se implementa el interfaz receptor, hay que redefinir todos los métodos del interfaz. Sise extiende la clase adaptadora, se pueden redefinir solamente aquellos métodos que son de interés
* Definir una clase Source, fuente, que instancie un objeto de la clase receptor y registrarla para la notificación de la ocurrencia de eventos generados por cada componente específico
Por ejemplo, esto se consigue utilizando código como
objetoVentana.addMouseListener(procesoRaton );
en donde
objetoVentana es el objeto que genera el evento
procesoRaton es el nombre del objeto receptor del evento, y
addMouseListener es el método que registra el objeto receptor para recibir eventos de ratón desde el objeto llamado objetoVentana
Esta sentencia hará que el objeto procesoRaton sea notificado de todos los eventos que se produzcan sobre el objetoVentana que sean...
tracking img