Pegar nome da tecla pressionada

1 resposta
F

Olá amigos,

Como que eu faço para pegar o nome de uma tecla que foi pressionada?

Estou usando o código abaixo para exibir o nome, só que ele traduz para português a palavra, por exemplo “DOWN” para “BAIXO”, e eu precisava que ficasse em inglês, porque mais para frente irei fazer com que essa tecla seja pressionada com a classe robot.

String tecla = KeyEvent.getKeyText(evt.getKeyCode()).toUpperCase();

Para fazer isso:

String code = VK_ + tecla ;

Field f = KeyEvent.class.getField(code);

int keyEvent = f.getInt(null);

robot.keyPress(keyEvent);

1 Resposta

staroski

Porque você quer fazer reflection para pressionar as teclas sendo que o keyCode é suficiente?

De qualquer forma, a descrição das teclas retornada pelo getKeyText pode ser modificada com um arquivo awt.properties.

Provavelmente no seu JDK tem um arquivo com um nome parecido com awt_pt_br.properties.

Você também pode fazer um map de Key codes com o nome da constante KeyEvent, acho que fica até mais performático.

Criado 20 de novembro de 2021
Ultima resposta 20 de nov. de 2021
Respostas 1
Participantes 2