thingol 17 de jan. de 2008
Ora, para que você usaria o actionPerformed em um JTextField (basicamente usada para atender a um ENTER) se você já usa o ENTER como se fosse o TAB? Não dá para fazer as duas coisas ao mesmo tempo.
Victor 17 de jan. de 2008
ora, tenho q tratar mais coisas no JTextField do que simplesmente mudar de campo… coisas especificas do programa…
leandrokjava 18 de jan. de 2008
pode fazer um action para o ENTER, e nesse action ele dá um setFocus() no proximo campo.
simples.
brunolinsalves 18 de jan. de 2008
Opa…
fiz um código aqui que faz isso…
espero ter ajudado…
att
import java.awt.FlowLayout ;
import java.awt.event.KeyEvent ;
import java.awt.event.KeyListener ;
import javax.swing.JFrame ;
import javax.swing.JTextField ;
public class Main extends JFrame {
JTextField [] caixasTexto ;
public Main () {
super ( "teste" );
setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE );
setLayout ( new FlowLayout ( FlowLayout . CENTER ));
setSize ( 400 , 400 );
Evento x = new Evento ();
caixasTexto = new JTextField [ 5 ] ;
for ( int i = 0 ; i < caixasTexto . length ; i ++ ) {
caixasTexto [ i ] = new JTextField ( 10 );
caixasTexto [ i ] . addKeyListener ( x );
add ( caixasTexto [ i ] );
}
}
public static void main ( String [] args ) {
Main starter = new Main ();
starter . setVisible ( true );
}
private class Evento implements KeyListener {
public void keyTyped ( KeyEvent e ) {
}
public void keyPressed ( KeyEvent e ) {
if ( e . getKeyCode () == e . VK_ENTER ) {
for ( int i = 0 ; i < caixasTexto . length ; i ++ ) {
System . out . println ( caixasTexto [ 0 ] . getText ());
if ( caixasTexto [ i ] . hasFocus ()) {
if ( ++ i >= caixasTexto . length )
i = 0 ;
caixasTexto [ i ] . grabFocus ();
}
}
}
}
public void keyReleased ( KeyEvent e ) {
}
}
}
leandrokjava 18 de jan. de 2008
não testei o codigo mas lendo ele parece que é isso mesmo…
ficou muito bom.
espero que o Victor de uma olhadinha.
T+