Article View: es.comp.lenguajes.java
Article #17287Re: Eventos
From: Juan Gonzalo de Silva Medina
Date: Thu, 23 Nov 2000 00:00
Date: Thu, 23 Nov 2000 00:00
73 lines
3606 bytes
3606 bytes
DrPanic wrote:
> Y yo sigo con mi arbol (a este paso me lo vais a hacer vosotros)
>
> A llegado el momento de que escuche a los evento, he leido el esquema
> de eventos del 1.1 pero hay algo que no se hacer.
>
> Os recuerdo que mi arbol es una superclase de canvas.
>
> En mi arbol, quiero que cuando se pulsa sobre un mensaje este quede
> seleccionado y luego el applet donde est� el arbol realize algunas
> acciones como mostrar el cuerpo del mensaje y tal. La segunda parte la
> entiendo, solo hay que a�adir el applet como MouseListener a el arbol,
> pero lo que no se es como hacer que antes de que el applet reciba el
> evento el arbol se redibuje y actualice la referencia que se�ala al
> mensaje seleccionado, es decir, que cuando el applet se entere de que
> han pulsado sobre el arbol el arbol ya haya hecho su faena. Lo �nico
> que se me ha ocurrido es que el arbolse registre a el mismo como
> MouseListener, pero entonces creo que no tengo ninguna seguridad sobre
> cual de los dos "escuchadores" se enterar� primero.
>
> Por si no lo habeis entendido lo que quiero hacer es lo que hace por
> ejemplo un bot�n, cuando pulsas el bot�n el se dibuja achuchado, y
> luego se enteran los "escuchadores" que tenga registrados.
Creo que lo mejor es que tu arbol emita sus propios m�todos sin tener en
cuenta c�mo han sido producidos.
1.- Crear el interface EscuchadorArbol:
En el creas los metodos necesarios para que un escuchador se entere de
lo que quieres, por ejemplo, los m�todos:
public void nodoSeleccionado (String nodo);
public void nodoPadreAbierto(String nodo);
public void nodoPadreCerrado(String nodo);
public void nodoA�adido(String nodoPadre, String nodoHijo);
[...]
Estos son los diferentes eventos que tu arbol va ha notificar.
2.- En el objeto arbol, creas los metodos para a�adir, borrar, y
notificar escuchadores:
public void addArbolListener(EscuchadorArbol listener){...}
public void removeArbolListener(EscuchadorArbol listener){...}
private void notificar(int tip){...}
� bien
private void notificarNodoSeleccionado(String nodo){...}
private void notificarPadreAbierto(String nodo){...}
[...]
Esto es as� ya que puedes querer, m�s adelante, que el arbol pueda ser
manejado mediante el teclado, y claro, ya no te sirve escuchar el evento
del rat�n, as�, el evento de que un nodo se ha abierto lo puedes emitir
tanto si ha sido con el rat�n como con el teclado.
Esto es lo mejor y cumple con los temas de objetos ya que encapsula toda
la complejida del porqu� se produce algo, al resto de los objetos...
3.- En el applet tienes que implementar el interface EscuchadorArbol y
rellenar los m�todos que te interese...
Saludos,
P.S.: Si los de los Listeners te suena a chino dimelo y te lo pongo m�s
claro.
--
Juan Gonzalo de Silva Medina
if(!Linux) throw new Exception(" :( ");
Technical Details
Message-ID:
<3A1D42A7.1040808@caymasa.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<543o1t0euhsioav33kssj2d847gc2olsn4@4ax.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,96293fc7c280bd56 X-Google-Attributes: gid1116f3,public From: Juan Gonzalo de Silva Medina <gonzalo@caymasa.es> Subject: Re: Eventos Date: 2000/11/23 Message-ID: <3A1D42A7.1040808@caymasa.es> X-Deja-AN: 697106566 Content-Transfer-Encoding: 8bit References: <543o1t0euhsioav33kssj2d847gc2olsn4@4ax.com> X-Accept-Language: es, en Content-Type: text/plain; charset=ISO-8859-1; format=flowed Organization: Telefonica Transmision de Datos Mime-Version: 1.0 User-Agent: Mozilla/5.0 (X11; U; Linux 2.2.14-5.0 i686; en-US; m18) Gecko/20001107 Netscape6/6.0 Newsgroups: es.comp.lenguajes.java