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…
Foco no JTextField
7 Respostas
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??
Onde você está adicionando esse WindowListener? Precisa ser direto na classe do seu frame / dialog / etc. :roll:
Já tentou?
...
tfNome.grabFocus();
...
ForceFocus();
campoTexto.requestFocusInWindow();
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.
Obrigado pela explicação Vini, já vou começar a corrigir meus códigos! :lol: