Post on 10-Jul-2015
description
MENEJO DE EVENTOS EN JAVA
Concepto
Un Evento es la acción que una usuario realiza dentro de una aplicación o
programa.
Son las diferentes dinámicas o comportamientos que asume un objeto de
acuerdo a las características o configuraciones le asigna a los elementos
de la Interfaz Grafica de Usuario.
Los eventos manejados o controlados hacen que las aplicaciones sean
mas atractivas, permite que cobren vida
EvenetListener : Vigilantes de acontecimientos (clic a un boton,
movimiento del mouse)
Los eventos permiten al programa interactuar con el usuario. Siempre que
se utiliza el ratón o el teclado, se genera un evento que describe de una
manera exacta lo que ha ocurrido.
Eventos generales o simples: son eventos producidos por una acción
general. Por ejemplo, pulsar una tecla, mover el ratón.
Eventos específicos: son los eventos que más nos interesan y son los
eventos que se utilizan con más frecuencia en AWT. Cada botón, al ser
pulsado, generase un evento único. Por esta razón, existen los
llamados eventos específicos contienen más información que los eventos
generales sobre el componente que ha generado el evento.
Clases de Eventos
NIVELES DE EVENTOSEVENTOS DE BAJO NIVEL
Estos eventos se producen cuando el usuario pulse alguna tecla o efectúe algún movimiento con el ratón, o también cuando se modifique o visualice algún componente en la pantalla.Las clases asociadas son:
ComponentEvent: se producirá cuando el usuario mueva o redimensione un componente
FocusEvent: se produce cuando el usuario cambia el foco de un componente
KeyEvent: cuando el usuario pulse una tecla
MouseEvent: se producirá cuando el usuario realice un movimiento o cliquee con el ratón
ContainerEvent: cuando se añadan o eliminen componentes en el contenedor
WindowEvent: se producirá cuando se realice algún tipo de operación con la ventana
EVENTOS DE ALTO NIVEL
Son aquellos que tienen que ver con la semántica de los componentes. Por ejemplo, se generarán cuando se pulse un botón o cuando se cambie el texto de un campo de texto. Las clases asociadas a este nivel son:
ActionEvent: se efectúa alguna acción sobre el componente, como puede ser la pulsación de un botón
AdjustmentEvent: se ajusta algún valor de una componente
ItemEvent: se ha modificado el estado de algún elemento que pertenece al componente, como puede ser un elemento de una lista desplazable
TextEvent: el contenido de texto de algún componente ha cambiado.
LAS CLASES DE ESCUCHA
Para poder capturar tanto los eventos de bajo nivel, como
los de alto nivel, Java proporciona las clases de escucha
(Listeners).
Estas clases son interfaces. Para cada tipo de evento existe
una clase de escucha.
Cada clase de escucha contiene la declaración de un
conjunto de métodos (Abstractos), a los que se llamarán
dependiendo del evento producido.
Una vez creados los componentes, debemos indicar qué clase de
escucha vamos a implementar a cada componente.
nombreDelComponente.addClaseDeEscucha( );
donde ClaseDeEscucha es el nombre de la clase de escucha.
Además deberemos indicar que la clase en la que se encuentran los
componentes implementa la interfaz correspondiente:
class LaQueSea implements ClaseDeEscucha {
...
}
Uno de los problemas que tienen las interfaces es que debemos definir
todos sus métodos abstractos en las clases que las implementan.
Entonces , si una de nuestras clases implementa la interfaz
WindowListener, deberá implementar todos los métodos asociados, aún
cuando sólo utilicemos uno de ellos. (El resto de los métodos tendrán una
implementación vacía). Por esta razón
clases adaptadoras
Estas clases adaptadoras se encargan de implementar todos los métodos
de la clase de escucha.
Así sólo necesitaremos redefinir aquellos métodos que nos van a ser
útiles para gestionar eventos , sin preocuparnos del resto.
Para ello dedemos indicar que nuestra clase es una subclase del
adaptador:
class LaQueSea extends Adaptador{
...
}
Sólo las clases que poseen más de un método tienen adaptador , y son
los siguientes:
ComponentListener posee ComponentAdapter
ContainerListener posee ContainerAdapter
FocusListener posee FocusAdapter
KeyListener posee KeyAdapter
MouseListener posee MouseAdapter
MouseMotionListener posee MouseMotionAdapter
WindowListener posee WindowAdapter
Ejercicio basico
Que hace este Codigo??