Puede añadir un evento a un componente en las vistas Diseño o Beans Java del editor visual para Java.
Al añadir un evento, si existe un 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 escucha, debe ser una clase interna anónima en el JavaBean que implementa la interfaz del 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 escucha candidato al 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 escucha la ampliará. De otra forma, implementará la interfaz de escucha. Una vez añadido el evento se crea un método apéndice (stub) con un comentario //TODO. 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 este es un escucha que amplía el adaptador, se le reutilizará, porque aún no tiene un método windowClosed. Se añade el método windowClosed(WindowEvent e) así como el apéndice de método y el comentario //TODO, tal como se muestra aquí:
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 tal como se ha mostrado anteriormente, pero también se pueden añadir a un escucha en el árbol Beans 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 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 en el código siguiente.
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.