Como detectar pressionamentos de tecla em Java

Saber quando um usuário pressiona uma determinada tecla é importante.

Passo 1

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

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

import javax.swing.JFrame; import 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 = novo JFrame ("KeyPress Tester");

frame.setSize (new Dimension (800, 600)); frame.setVisible (true); }

quadro JFrame privado; }

Passo 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) {
}

@Override public void keyReleased (KeyEvent e) {
}

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

Passo 3

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