En las vistas Diseño o Beans de Java se puede añadir un evento a un componente.
Un elemento a la escucha que se añada utilizando el método de dos argumentos es específico para una propiedad concreta, por lo que no se puede reutilizar para otra propiedad. Un elemento a la escucha que se añada con un método de argumento único tiene una sentencia if que comprueba el nombre de la propiedad antes de procesar la lógica de cada llamada de retorno de la misma, según se muestra a continuación.
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { Â Â Â public void propertyChange(java.beans.PropertyChangeEvent e) { Â Â Â Â Â Â Â if ((e.getPropertyName().equals("font"))) { Â Â Â Â Â Â Â Â Â Â Â System.out.println("propertyChange(font)");Â Â Â Â Â Â Â } Â Â Â } });
Esto permite añadir un PropertyChangeListener con un método de argumento único que se utilizará para más de una propiedad (mediante el uso de varios bloques if{}).Â
Cuando se añade un elemento, si existe un elemento a la escucha que se pueda utilizar, se le añade el método de llamada de retorno (callback). Si no, se crea uno nuevo. Para utilizar un nuevo elemento a la escucha, debe ser una clase interna anónima en el JavaBean que implementa la interfaz del elemento a la escucha. Debe tener el cuerpo del método vacío para el método de llamada de retorno (callback), o ampliar la clase adaptador. No debe tener añadido un método existente para la llamada de retorno del evento. Para una propiedad, se reutilizará un PropertyChangeListener siempre que se añada al JavaBean con un método de argumento único addPropertyChange(PropertyChangeListener listener). Si no tuviera código, se añade el proceso de la propiedad.
Si no existiera ningún elemento a la escucha candidato sobre el que se pueda añadir el método de llamada de retorno (callback), se crea uno nuevo. Será una clase interna anónima y, si se ha definido una clase de adaptador para el evento, el elemento a la escucha la ampliará. De otra forma, implementará la interfaz a la escucha. Una vez añadido el evento se crea un método apéndice (stub) con un comentario //TODO (//PENDIENTE). El método apéndice es un indicador del código fuente que se ejecutará cuando se produzca el evento, y el usuario debería cambiarlo para que tuviera el comportamiento deseado. El comentario //TODO aparecerá en la ventana Tareas, y le permite señalar los métodos que no están completos. Esto es así para que posteriormente se puedan localizar y eliminar los comentarios //TODO una vez que se haya escrito la lógica de la llamada de retorno.
En el ejemplo anterior, ya existe el método windowOpened. Si fuera este un elemento a la escucha que extiende al adaptador, se reutilizará el mismo elemento, pues aún no tiene un método windowClosed. Se añade el método windowClosed(WindowEvent e), así como el método apéndice y el comentario //TODO, según se muestra a continuación.
this.addWindowListener(new java.awt.event.WindowAdapter() { Â Â Â public void windowClosed(java.awt.event.WindowEvent e) { Â Â Â Â Â Â Â System.out.println("windowClosed()"); // TODO Auto-generated stub windowClosed() Â Â Â } Â Â Â public void windowOpened(java.awt.event.WindowEvent e) { Â Â Â Â Â Â Â callExistingWindowOpenedLogic(); Â Â Â } });
En modalidad experto, los eventos aún se pueden añadir al JavaBean según se muestra a continuación, pero también se pueden añadir a un elemento a la escucha en el árbol Beans de Java. El menú Eventos muestra todos los métodos de llamada de retorno de evento, y los que ya estén en uso se inhabilitan.
Para un PropertyChangeListener el menú emergente muestra todas las propiedades enlazadas en el JavaBean. Si ya se estuviera utilizando alguna por parte del PropertyChangeListener, se inhabilitan.
Un elemento a la escucha que se añada con un método de argumento único tiene una sentencia if que comprueba el nombre de la propiedad antes de procesar la lógica de cada llamada de retorno de la misma, según se muestra a continuación.
javaBean.addPropertyChangeListener(new java.beans.PropertyChangeListener() { Â Â Â public void propertyChange(java.beans.PropertyChangeEvent e) { Â Â Â Â Â Â Â if ((e.getPropertyName().equals("font"))) { Â Â Â Â Â Â Â Â Â Â Â System.out.println("propertyChange(font)");Â Â Â Â Â Â Â } Â Â Â } });
Esto permite añadir un PropertyChangeListener con un método de argumento único que se utilizará para más de una propiedad (mediante el uso de varios bloques if{}) y cuando se añade la segunda llamada de retorno de propiedad y subsiguientes, se añaden bloques if{} nuevos.
Si se añade propertyChangeListener al JavaBean utilizando el método de dos argumentos addPropertyChangeListener(String propertyName, PropertyChangeListener listener), es específico para una propiedad concreta, de forma que otra propiedad no lo puede reutilizar. En este caso, todos los hijos del menú Cascada de eventos se inhabilitan.
Tema padre: Gestión
de eventos con el editor visual
Conceptos relacionados
La vista Beans de Java
Tareas relacionadas
Supresión de eventos de un componente
Visualización de los
eventos de un componente
Visualización del fuente de un evento