pessoal estou com o seguinte codigo:
// demonstrando os eventos de pressionamento de tecla
import java.awt.Color;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class KeyDemoFrame extends JFrame implements KeyListener
{
private String line1 = ""; // linhas de textos que será exibido em textArea
private String line2 = "";
private String line3 = "";
private String line4 = "";
private JTextArea textArea; // lugar para exibir strings
// construtor
public KeyDemoFrame()
{
super("Demonstrando Keystroke eventos");
textArea = new JTextArea(10, 15); // configura JTextArea
textArea.setText("Pressione qualquer tecla no teclado...");
textArea.setEnabled(false);
textArea.setDisabledTextColor(Color.BLACK); // cor do texto a ser exibido
add(textArea);
addKeyListener(this);
}
// trata pressionamento de qualquer tecla
public void keyPressed(KeyEvent event)
{
line1 = String.format("Tecla pressionada: %s", event.getKeyText(event.getKeyCode())); // gera saida da tecla pressionada
line4 = (event.isShiftDown()) ? "Shift foi pressionado" : ""; // verifica o pressionamento do shift
setLines2and3(event); // configura a saída das linhas dois e tres
}
// trata liberação de qualquer tecla
public void keyReleased(KeyEvent event)
{
line1 = String.format("Tecla despressionada: %s", event.getKeyText(event.getKeyCode()));
setLines2and3(event);
}
// trata pressionamento de uma tecla de ação
public void keyTyped(KeyEvent event)
{
line1 = String.format("Tecla digitada: %s", event.getKeyChar());
setLines2and3(event);
}
// configura segunda e terceira linhas de saida
private void setLines2and3(KeyEvent event)
{
line2 = String.format("Essa tecla %sé uma tecla de ação",
(event.isActionKey() ? "" : "não "));
String temp = event.getKeyModifiersText(event.getModifiers());
line3 = String.format("Tecla modificadora pressionada: %s ", (temp.equals("") ? "nenhuma" : temp)); // modificadores de saída
textArea.setText(String.format("%s\n%s\n%s\n%s\n", line1, line2, line3, line4));
}
}
no final do construtor temos:
addKeyListener(this);
eu sei que estou adicionando o próprio frame do programa para passar a registrar as teclas digitadas. Minha duvida que não encontrei na busca, é se tem como eu adicionar o frame sem usar o this. Se tiver como, deixem o codigo para que eu teste e analise.