Foco no JTextField

7 respostas
P

Gostaria de saber como eu coloco o foco num JTextField… Jah tentei com o tfNome.requestFocus() mas nao funcionou…alguem ai sabe de alguma solucao?
Desde jah agradeco…

7 Respostas

P

tentei usar:

addWindowListener( 
      new WindowAdapter(){
        public void windowOpened(WindowEvent e){
          tfNome.requestFocus();
        }
      }
    );

Mas estah dando erro na linha: addWindowListener --> The method addWindowListener is undefined for the type MinhaClasse…
Alguem poderia me ajudar??

Trebloc

Onde você está adicionando esse WindowListener? Precisa ser direto na classe do seu frame / dialog / etc. :roll:

W

Já tentou?

...
   tfNome.grabFocus();
...
Scoobydoo
ForceFocus();
renanedpedroso
campoTexto.requestFocusInWindow();
ViniGodoy

O comando correto é o que o renan passou.

O grabFocus() não deve ser usado por aplicações clientes, como explica o JavaDoc do próprio método:
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComponent.html#grabFocus()

O requestFocus() tem o inconveniente de colocar o foco no componente, esteja a janela dele em foco ou não. Usa-lo com frequência cria o inconveniente de janelas indesejadas saltando na frente do usuário, quando ele nem sequer queria. Ele também tem um comportamento muito específico de plataforma, então, o comando preferido deve ser o requestFocusInWindow. O javadoc dele também ressalta isso:
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html#requestFocus()

O requestFocusInWindow() solicita o foco desde que a janela do componente também esteja em foco. É o mais adequado de todos, pois é geralmente o que esperamos. Ele ainda retorna false, caso o foco não tenha sido setado.

W

Obrigado pela explicação Vini, já vou começar a corrigir meus códigos! :lol:

Criado 18 de março de 2010
Ultima resposta 20 de mar. de 2010
Respostas 7
Participantes 6