segunda-feira, 10 de outubro de 2011

Programa Java para Captura de Teclas

O programa abaixo serve de exemplo para capturar teclas que são pressionadas. Copie e cole no Eclipse IDE e é só rodar. Modifique como for necessário.

import java.awt.*;
import java.awt.event.*;

public class KeyPress extends Frame{
    Label label;
    TextField txtField;
    public static void main(String[] args) {
        KeyPress k = new KeyPress();
    }

    public KeyPress(){
        super("Key Press Event Frame");
        Panel panel = new Panel();
        label = new Label();
        txtField = new TextField(20);
        txtField.addKeyListener(new MyKeyListener());
        add(label, BorderLayout.NORTH);
        panel.add(txtField, BorderLayout.CENTER);
        add(panel, BorderLayout.CENTER);
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent we){
                System.exit(0);
            }
        });
        setSize(400,400);
        setVisible(true);
    }

    public class MyKeyListener extends KeyAdapter{
        public void keyPressed(KeyEvent ke){
            char i = ke.getKeyChar();
            String str = Character.toString(i);
            label.setText(str);
        }
    }   
}

3 comentários:

  1. como faria para ele capturar as teclas pressionadas fora da aplicação

    ResponderExcluir
  2. Acredito que seja necessário ter uma aplicação. O conceito de aplicação, até onde entendo, é o próprio programa rodando. Se você deseja capturar as teclas então precisa de um programa que faça isso, seja ele qual for. O que você pode fazer é usar o Eclipse para escrever o programa e depois exportar o código em um .JAR e algum outro programa deverá chamar a execução desse JAR.

    ResponderExcluir
  3. A unica forma de capturar fora da aplicação seria usando um dispositivo externo. Um outro hardware, no caso um microcontrolador no barramento do teclado. Como um chupa cabra. Mas aí já é outro departamento. É um trabalho bem maior pois envolve além de um outro software também um outro hardware.

    ResponderExcluir