Evento JButton no JFrame por teclado

Estou com uma dúvida, fiz um exemplo de JFrame com uma caixa de texto e um único botão.

Como exemplo abaixo…

image
Minha dúvida e a seguinte, como faço para que este botão A, seja acionado quando eu digitar a tecla A pelo teclado?

Qual a melhor forma de fazer esta declaração?

Agradeço se puderem ajudar.

if (evt.getKeyCode() == KeyEvent.VK_ENTER) { //Se quiser a tecla Enter
    //evento
}

if (evt.getKeyCode() == KeyEvent.VK_A) { //Se quiser a tecla A
    //evento
}

Você pode colocar isso dentro de um evento KeyRealeased no seu jTextField. Você usa qual IDE? Se for no Netbeans vc consegue fazer isso clicando com o botão direito em cima do item que vc quer:

Sim uso o Netbeans. Mas eu coloco o KeyRealeased dentro do JTextField ou no botão criado no caso o botão A? Pois testei os 2 casos acima ele digita certo, mas o botão criado não lê qdo aperto no teclado a tecla A.

Pois esta a minha dificuldade, que o botão criado reconheça o que estou apertando pelo teclado e faça a ação de digitação conforme e no teclado.

Pra vc colocar essa ação no botão, o foco precisa estar no mesmo. Só não entendi o que vc quer fazer, qual a necessidade de deixar no botão?

Vams ver se consigo me expressar melhor.

No caso eu tenho um caixa de texto e um botão, no caso a letra A.
O que desejo fazer e q qdo eu pressione a tecla A no meu teclado, essa mesma ação seja feita pelo botão criado.
No caso o movimento abaixar qdo eu teclo A no meu teclado e que qdo eu solte o A ele volte ao normal.

Tipo um teclado virtual? Se sim, tem alguns links na internet sobre:

https://www.dreamincode.net/forums/topic/225444-i-need-to-create-an-on-screen-keyboard-gui-using-java/

Isso.

Tbm vi alguns, mas nhm consegui fazer esta ação, inclusive o do link mencionado por vc.

Não consigo resolver este problema, pois reconhece o que digito, mas as teclas ficam sem ação nhm.

Tá dificil de matar este problema.

Como assim? Da erro? Acontece o que exatamente?

As teclas ficam estáticas, não tem ação nhm qdo digito pelo teclado.

O texto sai normal qdo teclo as letras pelo teclado.

Da uma olhada nesse vídeo

´Já tinha visto. E isso que eu quero só que em vez de acionar pelo mouse, quero q acione qdo digito no teclado do notebook.

Acho que entendi o que você quer:

if (seu_botao.getModel().isPressed()) {
    //Ação
}

Seria isso?

Você não vai acionar o botão, na verdade tanto o botão quanto o pressionamento da tecla devem realizar a mesma operação.

Cria um método fazAlgumaCoisa() aí você chama esse método tanto no ActionListener do botão quanto no KeyListener do outro componente ou no InputMap e ActionMap de seu JFrame.

1 curtida

Ola Staroski. Vc fala dentro da classe botão correto?

Não, falo na sua tela.

Não entendi.
Desculpa estão pesquisando tanto que a cabeça ta meia que girando.
Como assim na minha tela?

Dê uma olhada nessa postagem: