Como detectar o pressionamento de uma tecla com Java

Escrito por matthew cory | Traduzido por weber figueiredo
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como detectar o pressionamento de uma tecla com Java
Saber quando um usuário pressionou uma tecla pode ser muito importante (Comstock/Comstock/Getty Images)

Embora a maioria das necessidades de obter a digitação do usuário sejam tratadas com facilidade em Swing, através de componentes padrão - por exemplo, copiando o texto através de um componente JTextField - às vezes é necessário estabelecer exatamente a tecla pressionada. Talvez uma combinação de teclas específica fará uma determinada ação, ou ainda, você pode querer impedir que certas teclas tenham seu efeito padrão, permitindo apenas caracteres alfabéticos em uma caixa de texto. Independentemente do cenário, obter a tecla que o usuário pressionou é uma tarefa simples.

Nível de dificuldade:
Moderadamente fácil

Outras pessoas estão lendo

O que você precisa?

  • Java SDK
  • Ambiente de Desenvolvimento Integrado, como o Eclipse ou NetBeans, recomendado mas não obrigatório

Lista completaMinimizar

Instruções

  1. 1

    Crie uma classe simples que crie e exiba um JFrame:

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

    import javax.swing.JFrame; import javax.swing.SwingUtilities;

    public final class KeyPressTester implements Runnable {

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

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

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

    private JFrame frame; }

  2. 2

    Modifique o método run() para adicionar um KeyListener ao frame 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("Key Character: " + e.getKeyChar() + "; Key Code: " + KeyEvent.getKeyText(e.getKeyCode())); } });

  3. 3

    Compile e execute o programa. Se você pressionar uma tecla quando o frame tiver foco, verá a saída no console que descreve a tecla pressionada, incluindo tanto o caracter de texto real (se disponível) quanto o texto da tecla, como Shift, Ctrl, Backspace, etc

Dicas & Advertências

  • Reveja os outros métodos disponíveis no parâmetro KeyEvent fornecido. Eles podem ser usados ​​para indicar que o utilizador pressionou teclas de modificação, tais como "Alt" ou "Ctrl", juntamente com a tecla especificada, e diferenciar, por exemplo, as teclas de deslocamento para a esquerda e para a direita. Também explore os outros dois eventos disponíveis no KeyListener: keyTyped e keyReleased. Eles são versões ligeiramente diferentes de eventos no teclado e podem ser mais aplicáveis a situações diversas.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível