🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26273

Re: Nuevos Eventos

#26273
From: Jonathan Revusky
Date: Tue, 19 Jan 1999 00:00
71 lines
2790 bytes

Rehm wrote:
> 
> On Tue, 19 Jan 1999 12:36:00 +0100, Jonathan Revusky <jrevusky@jet.es>
> wrote:
> 
> >
> >Hay un ensayo sobre el modelo de eventos del JDK 1.1 al cual se puede
> >acceder a traves de mi p�gina (el URL en mi firma abajo.) No lo he
> >escrito yo. Lo traduje. El ensayo es de Roedy Green.
> 
> Ya lo habia leido. El articulo es bastante denso. 

T� has dicho: "que trate eventos en profundidad." :-)

Otra opci�n es simplemente mirar el c�digo del java.awt.* y
java.awt.event.* y modelar tu propio c�digo a base de eso. Todo el
c�digo est� en src.zip en la distribuci�n del JDK.

Bueno, eso m�s denso que leer el ensayo, supongo. 

Mira, aqu� hay 4 etapas.

(1) Necesitas definir tu evento. Puede ser una subclase de
java.util.EventObject. 

public class MiEvento extends EventObject {
   public MiEvento(Algo source) {
	this.source = source;
   }

}

(2) Defines una interfaz con el nombre de MiEventoListener. Puede tener
un m�todo o m�s. Digamos que s�lo tiene uno. 

public MiEventoListener {
  public void algoOcurre(MiEvento evento);
}

(3) En los objetos que son fuentes del evento, creas los m�todos
addXXXListener y removeXXXListener. Tienes un contenedor, digamos un
Vector, que sirve para guardar los objetos que son listeners.

public void addMiEventoListener(MiEventoListener listener) {
   listeners.addElement(listener);
}

public void removeMiEventoListener(MiEventoListener listener) {
   listeners.removeElement(listener);
}

(4) y tienes un m�todo que se llama fireMiEvento(miEvento) 

protected void fireMievento(miEvento evento) {
   Enumeration enum = listeners.clone().elements();
   while (enum.hasMoreElements() {
     MiEventoListener l = (MiEventoListener) enum.nextElement();
     l.algoOcurre(evento);
   }
}

Espero que esto te sea �til.

Jonathan Revusky
-- 
Java and Delphi Consulting
Make your .class files double-clickable
with SmartJ
http://www.bigfoot.com/~crystalline.solutions
Technical Details
Message-ID: <36A4A2A6.1D5D3AD6@jet.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <36a31f4f.20082697@news.bcn.ttd.net> <36A46E20.61C8123F@jet.es> <36a4978e.39892782@news.bcn.ttd.net>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,9c6533ba9b909cd5
X-Google-Attributes: gid1116f3,public
From: Jonathan Revusky <jrevusky@jet.es>
Subject: Re: Nuevos Eventos
Date: 1999/01/19
Message-ID: <36A4A2A6.1D5D3AD6@jet.es>
X-Deja-AN: 434432286
Content-Transfer-Encoding: 8bit
References: <36a31f4f.20082697@news.bcn.ttd.net> <36A46E20.61C8123F@jet.es> <36a4978e.39892782@news.bcn.ttd.net>
X-Accept-Language: en
Content-Type: text/plain; charset=iso-8859-1
X-Complaints-To: usenet@lola.ctv.es
X-Trace: lola.ctv.es 916759317 21365 195.55.157.142 (19 Jan 1999 15:21:57 GMT)
Organization: CTV/JET
Mime-Version: 1.0
Reply-To: jrevusky@bigfoot.com
NNTP-Posting-Date: 19 Jan 1999 15:21:57 GMT
Newsgroups: es.comp.lenguajes.java