/*

Um die Funktionsweise dieser Methoden im Zusammenspiel mit den Methoden der Klasse KeyEvent besser verstehen zu können, wollen wir zwischen Zeichentasten und Funktionstasten unterscheiden. Zeichentasten sind dabei solche Tasten, mit denen Buchstaben, Ziffern oder sonstige gültige Unicode-Zeichen eingegeben werden, wie z.B. a, A, B, 1, 2, %, +, aber auch ESC, SPACE oder TAB. Zu den Funktionstasten gehören beispielsweise F1, F2, Pos1 oder CursorLinks, aber auch die Umschalttasten STRG, ALT und UMSCHALT.

Die Methode keyTyped wird immer dann aufgerufen, wenn eine Zeichentaste gedrückt wurde. Beim Drücken einer Funktionstaste wird sie dagegen nicht aufgerufen. Im Gegensatz dazu wird keyPressed bei jedem Tastendruck aufgerufen, unabhängig davon, ob es sich um eine Zeichentaste oder eine Funktionstaste handelt. Mit keyPressed können sogar in beschränktem Umfang die Feststelltasten wie NUM LOCK oder CAPS LOCK erkannt werden. Beide Methoden erhalten auch Tastatur-Repeats, werden also bei längerem Festhalten einer Taste wiederholt aufgerufen. Die Methode keyReleased wird aufgerufen, wenn eine gedrückte Taste losgelassen wurde, unabhängig davon, ob es sich um eine Zeichen- oder Funktionstaste handelte.

Um beim Auftreten eines Tastatur-Events zu erkennen, welche Taste gedrückt wurde, stellt die Klasse KeyEvent die Methoden getKeyCode und getKeyChar und zusätzlich die aus InputEvent geerbten Methoden isShiftDown, isControlDown, isMetaDown und isAltDown zur Verfügung: 
*/

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class Key00 extends JFrame implements KeyListener  {


  public Key00() {
    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    setGUI();
  }

  private void setGUI() {
    setSize(400, 430);
    setTitle("JFrame als Dialog");
    addKeyListener(this);
   // addWindowListener(new WindowClosingAdapter());
  } // setGUI


public void keyPressed(KeyEvent event)   {
    System.out.println("KeyPressed:   KeyChar: "+event.getKeyChar()+"   "+event.getKeyCode());
  }

   public void keyReleased(KeyEvent event)
   {
    System.out.println("KeyReleased");
      String msg1 = "";
      repaint();
   }

   public void keyTyped(KeyEvent event)
   {
    System.out.println("KeyTyped:   KeyChar: "+event.getKeyChar()+"   "+event.getKeyCode());
   }


  public static void main(String[] args) {
    Key00 frame = new Key00();
    frame.setVisible(true);
 }

}  // Key01


