Pessoal boa tarde,
eu tenho um jtext e toda hora que é pressionado um enter
com focus nele eu quero que chame um metodo.
eu nao conheco direito KeyListener.
Gostaria de uma ajuda, se voces puderem me explicar como faço e me passar algum link que tenha
a explicação do funcionamento do KeyListenner eu ficaria grato.
obrigado.
JText + KeyListener
5 Respostas
ola,
voce quer um evento para o textfield neh?
é so fazer o seguinte
seuTextField.addKeyListener(new KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
if (e.getKeyCode()==KeyEvent.VK_ENTER)
//o metodo que voce quer chamar
};
});
Isso,
eu fiz assim no meu construtor:
ActionCodigoBarras ac = new ActionCodigoBarras();
txtTeste.addKeyListener(ac);
e criei um KeyListenner
class ActionCodigoBarras implements KeyListener{
public void keyPressed(KeyEvent e){
if(e.getKeyChar() == KeyEvent.VK_ENTER){ //Se a tecla pressionada for igual a '\n'
JOptionPane.showMessageDialog(null, "Pressionou Enter");
}
}
public void keyReleased(KeyEvent e){
// código aqui
}
public void keyTyped(KeyEvent e){
// código aqui
}
}
Ai funfou beleza, só que to com outro problema agora, tipo
eu quero que o cara digite no meu jtext e quando ele der um enter
o meu programa valide esse codigo e retorne dados na tela.
eu consegui ate capturar o enter. so que nao entendo como vou pegar
esse valor que ele digitou sendo que estou em outra classe e acessar meu banco
e retornar nos outros campo da tela os valores.
é que tipo daquele jeito que eu postei antes tu escreve no txtfield e aperta enter para chamar o evento.
o que tu quer fazer é uma pesquisa no banco neh?
t1.addKeyListener(new KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
if (e.getKeyCode()==KeyEvent.VK_ENTER)
try{
//selecionar o campo atividade tmbm e retornar os valores nos botoes
resultado=comando.executeQuery("select nome,cpf,num_carne from aluno where Id='"+t1.getText()+"'");
if(resultado.next())
{
String r=resultado.getObject(1).toString();
String r1=resultado.getObject(2).toString();
String r2=resultado.getObject(3).toString();
t0.setText(r);t2.setText(r1);t3.setText(r2);
}
}
catch(Exception g)
{
JOptionPane.showMessageDialog(null, "Erro ao pesquisar.\nPor favor verifique!");
g.printStackTrace();
}
};
});
Isso mesmo.
funcionou aqui.
Muito Obrigado.
Se você quiser que ele dispare o evento de um botão padrão, nem precisa do keylistener. Basta no construtor da sua janela fazer:
Isso fará com que o botão ok seja disparado pelo enter, em qualquer JTextField que vc esteja na janela.
DICA: KeyListener é geralmente o caminho errado de resolver problemas com o JTextField.