🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Gestion de Eventos

#27045
From: Jonathan Revusky
Date: Thu, 05 Nov 1998 00:00
73 lines
3222 bytes

"�r�oK T�E N�KR0m�nC�R" wrote:
> 
> Un saludo a todo el mundo.
> 
>         Queria comentar a ver si alguien me podria ayudar en una duda que
>  me ha surgido en una aplicacion que estoy haciendo.
> 
>         Tengo una ventana en la cual he introducido un gran numero de
> Textfield's para la introduci�n de datos.Me interesaria que mientras
> vas introduciendo los datos, con el Intro, puedas ir cambiando de
> campo (TextField), por defecto para ir canviando de campo es el TAB,
> pero es mas comodo, intiutivo y elegante, con el Intro, asi que puse
> un bonito keyListener en la ventana para el control de la tecla Intro.
> 
>         Todo me compila correctamente pero no me efectua el evento
> keyListener, he pensado que podria ser por que en vez de ponerlo en la
> ventana en si, habria que ponerlo en todos los TextFields, �es asi?, �
> no hay algun metodo menos engorroso que poner a cada TextField un
> keyListener ?
 
>                                                         Gracias.

Me parece que tu ventana no puede recibir los KeyEvent. Lo que pasa es
que los TextField los reciben y los procesan y los tragan. No burburjean
hacia arriba.

Si quieres que algo ocurra como consecuencia de un INTRO en un
TextField, lo que debes utilizar es el ActionListener.

Aqu� tienes un m�todo que deber�a hacer lo que quieres. Le das tu
ventana, por ejemplo, como argumento, y a�ade (de modo recursivo si hace
falta) el ActionListener que necesitas a todos los TextFields que
contiene.


public static void addIntroListeners(Container c) {
   ActionListener introListener = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        Component c = (Component) e.getSource()
        c.transferFocus();
      }
   };
   public Component[] components = c.getComponents();
   for (int i=0; i<components.length; i++) {
      Component comp = components[i];
      if (comp instanceof Container) {
          addIntroListeners((Container) comp);
      }
      else if (comp instanceof TextField) {
          ((TextField) comp).addActionListener(introListener);
      }
   }
}

Espero que te ayude.

Otra vez, para que la gente lo aproveche. Hay un ensayo sobre el modelo
de eventos del Java 1.1 en mi p�gina web. Es en castellano. Se puede
llegar all� a trav�s del link in my sig abajo.

Y si alguien lee algo en el ensayo que es mal castellano o simplemente
poco claro, por favor d�melo.

Saludos,

Jonathan Revusky
-- 
Java and Delphi Consulting
Make your .class files double-clickable
with SmartJ
http://www.bigfoot.com/~crystalline.solutions
Technical Details
Message-ID: <3641D081.938F2C36@jet.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <71senu$3al@lilith.uab.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,a8db118818ebd858
X-Google-Attributes: gid1116f3,public
From: Jonathan Revusky <jrevusky@jet.es>
Subject: Re: Gestion de Eventos
Date: 1998/11/05
Message-ID: <3641D081.938F2C36@jet.es>
X-Deja-AN: 408710235
Content-Transfer-Encoding: 8bit
References: <71senu$3al@lilith.uab.es>
X-Accept-Language: en
Content-Type: text/plain; charset=iso-8859-1
Organization: Telefonica Transmision de Datos
Mime-Version: 1.0
Reply-To: jrevusky@bigfoot.com
Newsgroups: es.comp.lenguajes.java