🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Eventos

#17242
From: Juan Gonzalo de Silva Medina
Date: Tue, 28 Nov 2000 00:00
107 lines
5715 bytes

DrPanic wrote:

> On Sun, 26 Nov 2000 23:41:37 +0100, Juan Gonzalo de Silva Medina
> <gonzalo@caymasa.es> wrote:
> 
> 
>[...] 
> 
> No necesito saberlo, en mi arbol siempre que se pulsa con el rat�n se
> selecciona un mensaje, aunque adem�s se abra o se cierre. Ya te digo
> que mi arbol es muy especifico para mi problema, no tengo tiempo de
> ponerme a hacer un arbol gen�rico, adem�s si MS se decide a soportar
> de una vez swing es su navegador dentro de algo de tiempo no har�
> falta ;-) esperemos.
> 

�Seguro? eso puede ser casi milagroso... veamos, para ello tu arbol ha 
de ocupar todo el cambas, o sea, que si pincha en un espacio en blanco a 
la derecha de un texto, tu has de considerar que ha pulsado el texto.

Yo no estoy diciendo que pongas un arbol gen�rico, siento si me he 
explicado mal.

 
>> Si haces que el applet sea mouse-listener del canvas solo obtendr�s la 
>> pulsaci�n del rat�n, pero no sabr�s qu� es lo que se est� pulsando o 
>> bien, tendr�s que pasar la complejidad de esto al applet para que �l lo 
>> investigue, cosa que no me parece muy correcta...
> 
> 
> Siempre puedes tener una variable en la que el applet pueda el tipo de
> evento que ha ocurrido. O sea, el applet dice, han pulsado, voy a ver
> lo que ha pasado.
> 

AH! ahora, ya ha aparecido el motivo... o sea, reaprovechas el evento de 
pulsaci�n de rat�n, no para que extrictamente el applet lo escuche y 
actue mirando que se est� pulsando en tu cambas (mirando el evento de 
pulsaci�n) sino que ha de mirar una variable (o llamar un m�todo, para 
los puristas) para saber que ha ocurrido.

 
> 
>> Por supuesto que siempre es necesario dejar pasar el evento con 
>> super.processMouseEvent(e);
> 
> 
> Pero si dejas pasar el evento no tiene sentido tu soluci�n al
> problema, porque por un lado el applet est� atendiendo a eventos del
> tipo de AWT (mouse Event y todos esos) y por el otro atiende a eventos
> del tipo que tu creas como nodoAbierto, etc. lo cual no tiene l�gica.
> Yo en tu soluci�n no pasar�a los eventos AWT y los transformar�a en el
> otro tipo de eventos.
> 

Ojo, creo que he vuelto ha explicarme mal, lo que yo te digo es que el 
evento lo has de pasar al padre con super, ya que este realiza cosas, si 
es necesario, solo se ha de consumir el evento cuando se tenga claro que 
no hay que seguir proces�ndolo, pero como regla general se debe de 
llamar al padre (y en primer lugar en vez de en �ltimo lugar). Esto es 
la regla general de la construcci�n de controles propiertarios en AWT (y 
en Swing, claro). Aunque en tu caso poco importa, ya que un cambas no 
hace nada con el click.

 
>> Pero sigo pensando que tienes que hacer la notificaci�n que te interese.
>> 
>> Tu dir�s...
> 
> 
> A mi como lo he hecho ahora me funciona, no complicas el esquema de
> clases y adem�s es la soluci�n propuesta por sun, no lo voy a tocar,
> no me merece la pena, pero si, estoy de acuerdo contigo en que tu
> sistema ser�a mucho mas "de alto nivel", pero AWT es AWT quiz� el
> sistema de eventos de AWT entero est� mal planteado, �como es el de
> swing?
> 
> PD. Me gustan estas discusiones de arquitectura, se pone interesante.

Uf, el sistema de evento de AWT ha sido modificado por lo menos de la 
1.0 a la 1.1 (en este mismo grupo, hace tiempo, se advertia de esto ;-) 
), de echo tu no miras el click de checkButton (no te haces 
mouseListener) sino que miras sus eventos expec�ficos.

Perdona, pero no se de donde has sacado eso de que la soluci�n propuesta 
por Sun es hacer mouse-listener y pasar un estado a trav�s de una 
variable, para saber que ha ocurrido. Yo en el api de AWT no he visto 
nada as� (salvo en los cambas puros y duros, claro).

Lo que si hace Sun es definir cierto grupo de Eventos comunes a todos 
sus componentes como ActionListener, ya que casi todos los controles 
visuales pueden genera el evento de ActionPerformed. Esto lo hace para 
simplificar el esquema de escuchadores y no hacerte tener muchos m�todos 
distintos (varios ActionPerformed espec�ficos). Pero esto siempre es 
discutible, ya que finalmente, dentro de tu c�digo tendr�s que preguntar 
por el objeto o por la clase de objeto que ha realizado el evento...


Saludos,

P.S.: Voy de viaje hasta el mi�coles no podr� seguir este tema.. :(

--
Juan Gonzalo de Silva Medina
if(!Linux) throw new Exception(" :( ");
Technical Details
Message-ID: <3A22F5B7.3050606@caymasa.es>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!skynet.be!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mail
References: <543o1t0euhsioav33kssj2d847gc2olsn4@4ax.com> <3A1D42A7.1040808@caymasa.es> <qpes1tkg6hapr78hqam3dhbvbq676s5a35@4ax.com> <3A1F1E51.6020501@caymasa.es> <4p7v1tcigrctuetcbov1t4fatucvg7k22f@4ax.com> <3A2191A1.9010503@caymasa.es> <ho832tojh6b4ttl6lhrd8heod526t83p4t@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,96293fc7c280bd56
X-Google-Attributes: gid1116f3,public
X-Google-ArrivalTime: 2000-11-27 15:57:06 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!skynet.be!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!fu-berlin.de!newsfeed.bcn.ttd.net!news.mad.ttd.net!not-for-mail
From: Juan Gonzalo de Silva Medina <gonzalo@caymasa.es>
Newsgroups: es.comp.lenguajes.java
Subject: Re: Eventos
Date: Tue, 28 Nov 2000 01:00:55 +0100
Organization: Telefonica Transmision de Datos
Lines: 110
Message-ID: <3A22F5B7.3050606@caymasa.es>
References: <543o1t0euhsioav33kssj2d847gc2olsn4@4ax.com> <3A1D42A7.1040808@caymasa.es> <qpes1tkg6hapr78hqam3dhbvbq676s5a35@4ax.com> <3A1F1E51.6020501@caymasa.es> <4p7v1tcigrctuetcbov1t4fatucvg7k22f@4ax.com> <3A2191A1.9010503@caymasa.es> <ho832tojh6b4ttl6lhrd8heod526t83p4t@4ax.com>
NNTP-Posting-Host: usr-67-171.caymasa.es
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
User-Agent: Mozilla/5.0 (X11; U; Linux 2.2.14-5.0 i686; en-US; m18) Gecko/20001107 Netscape6/6.0
X-Accept-Language: es, en