estou desenvolvendo um sisteminha em java, e nos meus campos JTextField gostaria que ao usuario digitar o valor no campo e pressionar
ENTER ou TAB o programa validasse o campo.
Alguém ja fez isso? Sabe como? Como Faria?
Valeuz :-o
Meu amigo é so implementar o KeyListerner e adicionar o
JtextField.addKeyListener();
e no metodo KeyPress
public void keyPressed(KeyEvent e) {
if(e.getSource() == JtextField){
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//Coloque o metodo de validação aqui
}
}
}
Espero ter ajudado…
Qualquer duvida Post ae…
eu queria que funcionasse assim:
private void cdUsuarioKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER || evt.getKeyCode() == KeyEvent.VK_TAB) {
validaUsuario();
}
}
só que desse jeito só funciona o ENTER, o TAB simplesmente nao pega
- Programe o evento ActionPerfomed do TextField para capturar o ENTER.
- Programe o evento FocusLost do TextField para capturar o TAB.
- Apartir de ambos chame o ValidaUsuario().
se o usar o lostfocus a mensagem aparece várias vezes…
Resolvi da seguinte maneira:
-
setei a propriedade:
cdUsuario.setFocusTraversalKeysEnabled(false); -
no meu metodo actionPerformed do campo eu chamo o metodo
que valida o Usuario. -
se o usuario for valido passa o foco para o proximo campo, senão da uma mensagem ( agora mostra uma vez só ) e seta o foco para o cdUsuario.
Pra isso voce pode utilizar o método focusLost() do objeto JTextField.
Abraços.