🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Eventos

#17287
From: Juan Gonzalo de Silva Medina
Date: Thu, 23 Nov 2000 00:00
73 lines
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-mail
References: <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