Ayuda por favor!! Simular tecla tabulador con otra tecla!!

Carlos
11 de Enero del 2008
Hola,

me gustaria simular el efecto que produce el presionar la tecla tabulador (cambio de foco) sobre cualquier componente swing pero con otra tecla (p.e enter)

Gracias.

Pavel Franco Marin
11 de Enero del 2008
Hola.
Lo unico que tienes que hacer es esto:

campo1.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
campo2.requestFocus();
}
}
});

Con eso sera suficiente para que cuando presiones ENTER en un campo de texto, el foco salte al siguien campo o bien, al campo que tu quieras que salte, todo depende de lo que digas que haga ( campo3.requestFocus(); ó campoN.requestFocus(); )...

Espero te sirva, hasta pronto...

Noe
27 de Abril del 2010
gracias Pavel Franco Marin, requestFocus(); es la función que se usa para que cierto conponente pida la bandera de enfocado

x
11 de Enero del 2008
una opcion es añadir un keylistener y validad que cuando se presionen las teclas q quieras las reemplace por el tab
algo asi:

public void keyPressed( KeyEvent e )
{
char c = e.getKeyChar();
if ( c == KeyEvent.VK_ENTER)
c = KeyEvent.VK_TAB; // cambiamos el enter por tab
}

Carlos
11 de Enero del 2008
Hola,

gracias por tu ayuda, pero en el ejemplo que me pones no entiendo muy bien lo que haces ya que compruebas si se ha pulsado la tecla enter y en caso afirmativo metes en la variable c la macro KeyEvent.VK_TAB pero no veo como eso puede hacer que se simule el efecto de tab al pulsar enter, osea que se produzca el cambio de foco.

Gracias.

x
11 de Enero del 2008
no lo he probado
pero cuando pulsas tab normalmente cambias de foco en tus aplicaciones
me imagino q quieres que cuando alguien dé enter en un textfield se pase al siguiente como si pulsara tab. Éso es lo que hace el codigo en teoria. reemplaza el valor del char por el el de un Tab, asi cuando presiones enter, antes de que tenga efecto, sera reemplazado por un tab
pruebalo