Como detectar pressionamentos de teclas em Java

Embora a maioria das necessidades de entrada do usuário seja tratada de maneira bastante simples no Swing por meio de componentes padrão, por exemplo, obtendo texto através de um componente JTextField, às vezes é necessário obter as teclas de atalho exatas do usuário . Talvez uma determinada combinação de teclas gere uma determinada ação, ou convém evitar determinadas teclas, para que elas não tenham o efeito padrão, como permitir apenas caracteres alfabéticos em uma caixa de texto. Seja qual for o cenário, é simples obter a tecla que o usuário pressionou.

Passo 1

Crie uma classe simples que crie e exiba um JFrame no momento:

importar java.awt.Dimension; importar java.lang.reflect.InvocationTargetException;

importar javax.swing.JFrame; importar javax.swing.SwingUtilities;

classe final pública KeyPressTester implementa Runnable {

public static void main (String [] args) lança InterruptedException, InvocationTargetException {SwingUtilities.invokeAndWait (new KeyPressTester ()); }

@Override public void run () {frame = new JFrame (“KeyPress Tester”);

frame.setSize (nova dimensão (800, 600)); frame.setVisible (true); }

quadro JFrame privado; }

Etapa 2

Modifique o método run () para adicionar um KeyListener à estrutura com a seguinte implementação:

frame.addKeyListener (new KeyListener () {

@Override public void keyTyped (KeyEvent e) {
}

@ Substituir public void keyReleased (KeyEvent e) {
}

@Override public void keyPressed (KeyEvent e) {System.out.println (“Caractere da chave:” + e.getKeyChar () + “; Código da chave:” + KeyEvent.getKeyText (e.getKeyCode ())); }});

Etapa 3

Compile e execute o programa. Se você pressionar uma tecla quando o quadro estiver focado, deverá ver uma saída do console que descreva a tecla pressionada, incluindo o caractere de texto atual (se disponível) e o texto da tecla, como Shift, Ctrl, Backspace etc.

 

Você pode estar interessado:

Deixe um comentário