Post a Event

carofe82
10 de Febrero del 2005
Hola!
Necestio saber como enviar un evento a un jcomponent
algo asi como postEvent(comp, Event e)
Estuve viendo eso de EventQueue pero dice que es del estilo 1.1 y vi las herencias y van pa distintos laos con respecto a swing.

En fin que necesito hacer algo asi como:
lanzar un hilo de ejecucion que esta comprobando(detectando) una situacion y cuando lo encuentra quiero que lanze una señal a un JFrame o JPanel y este ejectute un metodo que incerta informacion en el JPanel y realiza algunas acciones mas.
Yo mismo me creo una clase que hereda de Event que tiene lo suficiente para suministrale la informacion que necesito en el JPanel.
¿Ese metodo puede ser actionPerformed y comprobar el evento en si, si es el mio?

carofe82
10 de Febrero del 2005
Hey!
Alguien sabe como hacer esto?

nkpevfqy
10 de Febrero del 2005
Para que un componente pueda recibir eventos de swing o propios, tienes que implementar el modelo Listener. Para ello te creas una interfaz listener que defina los metodos que el receptor del evento debe tener para notificarle dichos eventos. Defines en evento que herede de Event, que sea el argumento que reciben los metodos de la interfaz listener. En la clase que genera los eventos, debes tener dos metodos, addXXXListener(XXXListener) y removeXXXListener (XXXListener), con los cuales el objeto que genera el evento registra sus escuchadores, sus listener. Para ello guardas los listeners en un Vector y listo. Cuando el objeto que genera el evento quiere notificar que dicho evento acaba de producirse, recorre el Vector de listeners que se han registrado y sobre cada uno de ellos invoca el metodo de la interfaz adecuado el tipo de evento ocurrido. Entonces, el objeto que quiere recibir el evento invoca el metodo addXXXListener() sobre el objeto que los genera pasandole una referencia a si mismo.

Si miras el codigo fuente de swing, veras como funciona este modelo y que no es muy complicado. Creo que hay tutoriales de todo esto, de como hacerse Event propiso y Listener propios y coordinarlo todo.