Crear nuestro propio Listener
Artículo por Club Developers · 06 junio 2006
2090 vistas
Caso representativo:
In componente dado tiene la necesidad de informar a uno o varios componentes que se ahn producido ciertos eventos.
Un pequeño ejemplo:
El componente MiBoton tiene que informar a una lista de objetos que se ha pulsado y soltado el botón izquierdo del ratón.
Definir una nueva interfaz:
class miBoton:
Ahora sólo queda llamar éste método cada vez que el evento apropiado se genere.
In componente dado tiene la necesidad de informar a uno o varios componentes que se ahn producido ciertos eventos.
Un pequeño ejemplo:
El componente MiBoton tiene que informar a una lista de objetos que se ha pulsado y soltado el botón izquierdo del ratón.
Definir una nueva interfaz:
java
}
class miBoton:
java
/** import necesario */ import javax.swing.event.EventListenerList; /** propiedad */ /** instanciación necesaria: a realizar en el constructor o en un método llamado por éste */ /** añade un componente a una lista de los que quieren ser informados */ public void addMiBotonMouseListener (MiBotonMouseListener l) { this.listenerList.add (MiBotonMouseListener.class, l); } /** quita un objeto que está actualmente a la escucha del evento */ public void removeMiBotonMouseListener (MiBotonMouseListener l) { this.listenerList.remove (MiBotonMouseListener.class, l); } /** lanzar un evento a todos los objetos a la escucha * (== llamar al método botonIzqPulsado sobre todos los objetos a la escucha de la lista */ protected void firebotonIzqPulsado () { MiBotonMouseListener [] listeners = (MiBotonMouseListener []) listenerList.getListeners( MiBotonMouseListener.class); for (int i = listeners.length-1; i>=0; i--) { listeners [i].botonIzqPulsado (e); } }
Ahora sólo queda llamar éste método cada vez que el evento apropiado se genere.