Swe vc fez pelo Netbeans designer o JFrame, basta vc clicar com o botão direito no frame, clicar em keyevent…ai vc vai la no código gerado, faz um if:
if(evt.getKeycode()==VK_ESC){this.dispose();}
basta vc escolher qual tecla vc quer, usando as constantes VK_ …
mauricionarcizo
Cara, você criou um evento para adicionar o seu código??? caso não, faz assim: se for uma jtextfield vá em propriedades e na guia selecione eventos e procure keypressed e clique em cima da seta para baixo e escolha a opção jtextfieldKeypressed, pronto agora voce criou um evento e foi direcionado para a parte do código, este evento serve para que toda vez que o usuário pressiona alguma tecla no campo seja ativado algum evento e ai o seu código será ativado, dei um exemplo com jtextfield mas pode ser utilizado em outros componentes.
Espero ter ajudado, alguma duvida ae da um grito!!!
matheuslmota
Cara, procura por KeyAdapter
Nesse link o cara usa o KeyAdapter para capturar o evento de pressionar as teclas direcionais. Tente adaptar ao seu caso.
Abraço.
R
roger_rf
Uma maneira de fazer isso é criar uma Action, e depois associar essa Action a um KeyStroke. Segue um exemplo:
tentei o exemplo do guilherme.dio, não funcionou.
Já o do mauriocionarcizo, eu criei um evento pro painel, pois preciso habilitar o jtextfield, então o usuário ainda não consegue digitar nada no jtextfield, porém mesmo criando um evento desse pro painel não funcionou.
R
rspricigo
Pessoal,
um colega acabou de me passar por e-mail um exemplo que funcionou aqui
Mas você colocou esse código onde?? No evento que eu te falei??? Ou Criou outro evento ou método?
R
rspricigo
Coloquei logo abaixo do initcomponets que o netbeans cria. No construtor.
guilherme.dio
rspricigo:
Então pessoal,
tentei o exemplo do guilherme.dio, não funcionou.
Já o do mauriocionarcizo, eu criei um evento pro painel, pois preciso habilitar o jtextfield, então o usuário ainda não consegue digitar nada no jtextfield, porém mesmo criando um evento desse pro painel não funcionou.
pq vc fez errado.
lembrando, que ao perder o foco do JFrame, o evento não será chamado!
R
rspricigo
Eu segui exatamente os passos que você falou. E não funcionou.
Por enquanto funcionou apenas o que o colega me enviou por e-mail.
R
roger_rf
Usar KeyPressed pode ser um problema, pois um componente pode “consumir” um pressionamento de tecla sem que você saiba, e portanto sua rotina não será executada. A técnica que seu amigo lhe passou por e-mail é a mesma cujo link postei anteriormente.
R
rspricigo
Exatamente isso roger.
Aproveitando o código que meu colega passou, e que o roger postou o link com outro exemplo. Pra quem tiver mais de um painel, como um TabbedPane e precisar que a mesma tecla faça coisas diferentes dependendo do painel que estiver em foco, basta criar o inputMap para o Painel ou componente desejado, e apos isso criar a ActionMap para o mesmo componente.