🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Gestion de Eventos

#27028
From: Federico
Date: Wed, 04 Nov 1998 00:00
83 lines
3500 bytes
Jonathan Revusky escribi� en mensaje <3638CA15.D59C91EA@jet.es>...
>
>
>ArIoK ThE NeKrOmAnCeR wrote:
>>
>> Hace tiempo que programo en Java y tengo un problema con la nueva
>> gestion de eventos, para poder utilizar ActionListener's em un frame
>> ha de ' implementarse ' al inicio, hasta ahi bien, pero cuando quiero
>> ademas utilizar KeyListener's, �como lo hago para implementarlos?
>> �Tengo que hacer otra clase implement KeyListener solo pa eso?
>
>Si no quieres, no. Es un esquema muy flexible y elegante.
>
>La misma clase puede implementar ActionListener y KeyListener si
>quieres.
>
>public class KeyActionAdapter implements ActionListener, KeyListener {
>   public void actionPerformed(ActionEvent e) {
>     blah blah blah
>   }
>
>   public void keyPressed(KeyEvent e) {
>     blah blah blah
>   }
>// y no olvides KeyReleased() y KeyTyped()
>}
>
>De todas formas, mira en mi p�gina web (puedes llegar por el link en mi
>firma abajo) y encontrar�s un ensayo sobre el model de eventos del Java
>1.1.
>
>El ciclo de un evento en Java.
>
>�����Es en castellano!!!!


Para mi gusto es m�s f�cil gestionar los eventos como lo hace el JBuilder
(por lo menos en muchos de los casos). Consiste en crear nuevas clases que
heredan de clases adapatdoras ("adapters"), las cuales ya implementan los
Listeners correspondientes (p.e. a MouseListener le corresponde
MouseAdapter), con lo que no tenemos que reescribir todos los pre-m�todos
del Listener (ya est�n escritos en el adaptador) y adem�s conseguimmos que
la clase correspondiente a la ventana tenga un c�digo m�s claro y elegante
(seg�n mi gusto). Para que estas clases que extienden a las clases
adaptadoras reciban los eventos, hay que registrarlas como Listeners de los
mismos. Adem�s, para que puedan llamar a m�todos de la clase ventana, hemos
de mandar al constructor del adaptador una referencia de dicha clase. Al
pricipio parece complejo, pero, en mi opini�n clarifica mucho el c�digo.
P.e.:
    public class Ventana extends Frame / Applet / o lo que sea
    {
        Button b1 = new Button();
        Button b2 = new Button();
        Button b3 = new Button();
        .........
        .........
        b1.addActionListener(new B1ActionAdapter(this));
        b2.addActionListener(new B2ActionAdapter(this));
        ........

        public void hacerCuandoB1pulsado(ActionEvent e)
        {    .................    }
    }

    class B1ActionAdapter extends ActionAdapter
    {
        Ventana adaptador;

        public  B1ActionAdapter (Ventana v)
        {    adaptador = v;    }
        public ActionPerformed(ActionEvent e)
        {
            adaptador.hacerCuandoB1Pulsado(e);
        }
    }

Bueno, despu�s de explayarme de esta forma, que cada uno decida. Yo digo que
es m�s elegante y claro, y m�s "orientado-a-objetos", pero estoy abierto a
otras opiniones.

Un saludo,
Federico
Technical Details
Message-ID: <71q7c9$gra$1@talia.mad.ibernet.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <71a8ol$17p@lilith.uab.es> <3638CA15.D59C91EA@jet.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,a8db118818ebd858
X-Google-Attributes: gid1116f3,public
From: "Federico" <fede-publicidad_no-007@teleline.es>
Subject: Re: Gestion de Eventos
Date: 1998/11/04
Message-ID: <71q7c9$gra$1@talia.mad.ibernet.es>
X-Deja-AN: 408381469
References: <71a8ol$17p@lilith.uab.es> <3638CA15.D59C91EA@jet.es>
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
Organization: Telefonica Transmision de Datos
Newsgroups: es.comp.lenguajes.java