Java Tasten abfrage

Hallo,

ich habe zuletzt im Informatikunterricht mit einem Freund versucht herauszufinden, wie genau die KeyListener Funktion in Java funktioniert. Wir haben bereits eine Klasse für die 3 Funktionen keyPressed, keyTyped und keyReleased erstellt. (Fanden hierzu auch viele Toturials)
Allerdings wissen wir nicht, wie wir die Funktion abfragen sollen, da jede Funktion das Parameter „KeyEvent e“ für die gedrückte Taste benötigt. Wir wissen jedoch nicht, wie wir abfragen, dass eine Taste gedrückt wurde und welche es ist.
Wir hoffen, dass uns jemand den Befehl für die Tastenabfrage nennen kann, da wir bissher mir sowas, wie keyEvent.getKeyChar(), nichts anfangen können.

Danke im vorraus.

Also wie ihr sicher wisst, muss man zum Empfangen von Events einen EventListener implementieren (implements %Eventname%Listener)
und diesen dann beim Eventerzeuger(z.B. JFrame) registrieren.
eventErzeuger.add%Eventname%Listener(my%Eventname%Listener);
Der Eventerzeuger ruft dann die Funktionen des EventListeners (bei euch KeyListener) mit einem EventObjekt (bei euch KeyEvent) auf.
z.B. void keyPressed(KeyEvent event);
Das EventObjekt(KeyEvent) beinhaltet weitere Informationen zum Ursprung des Events (z.B. welche Taste wurde gedrückt).

Wenn ihr einen KeyListener implementiert und registriert habt,
dann könnt ihr darin die gedrückten Tasten leicht abfragen.
Der gängige Weg das zu machen, ist entweder keyEvent.getKeyChar() oder
keyEvent.getKeyCode() abzufragen.
Ersteres liefert das entsprechende Zeichen der Taste als String, das zweite liefert eine int-Konstante für die Taste.
Die Konstanten gibts in KeyEvent mittels KeyEvent.VK_%Name%
Hier ein Code schnipsel aus einem KeyListener von einem 2D-Shooter den ich mal vor vielen Jahren geschrieben habe ^^ mit KeyCode-abfragen:

public void keyPressed(KeyEvent event) {

 char keych = event.getKeyChar();
 int keyco = event.getKeyCode();

 if (keyco == KeyEvent.VK\_LEFT) {
 sky.panzer1.moveBy(-25);
 } else if (keyco == KeyEvent.VK\_RIGHT) {
 sky.panzer1.moveBy(25);
 } else if (keyco == KeyEvent.VK\_UP) {
 sky.panzer1.fire();
 } else if (keych == KeyEvent.VK\_1) {
 sky.anfangen(false);
 } else if (keych == KeyEvent.VK\_2) {
 sky.anfangen(true);
 } else if (keych == KeyEvent.VK\_3) {
 sky.showDescription();
 }

 if (sky.twoPlayers) {
 if (keyco == KeyEvent.VK\_A) {
 sky.panzer2.moveBy(-20);
 } else if (keyco == KeyEvent.VK\_D) {
 sky.panzer2.moveBy(20);
 } else if (keyco == KeyEvent.VK\_W) {
 sky.panzer2.fire();
 }
 }
 }

Noch fragen?
Gruß
VoidZer0