EneR: Tastatur Listener

Hallo,
ich schreibe grad ein Java-Applett, welches ein Rennen Simuliert.
Dafür wolte ich, immer wenn jemand z.B. die Taste "V" drückt, das sich die Figur vorwärts bewegt. Gibt es irgend eine Möglichkkeit zu gucken, ob jemand eine Taste gedrückt hat oder nicht? (Das ganze sollte natürlich ohne Enter oder einen "Absenden" buton funktionieren).
Ausserdem bräuchte ich dann noch eine Möglichkeit, dass man die Taste nicht gedrückt halten kann!

das ist mein Momentaner Code:

  
import java.applet.*;  
import java.awt.*;  
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
  
public class bewegScheibe extends Applet{  
 public void main(String[] args) {  
  
  System.out.println("-----HALLO-----");  
  Graphics geG = null;  
  paint(geG);  
 }  
 void Zeitschleife() {  
  try {  
   Thread.sleep(100);  
  }  
  catch (InterruptedException e) {  
  
  }  
 }  
 public String warteAufEingabe(int x) {  
  String mesg = null;  
  try {  
   BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) );  
    mesg = in.readLine();  
    System.out.println(mesg);  
  }  
  catch (IOException e) {  
  
  }  
  return mesg;  
 }  
 public int point(Graphics stift) {  
  stift.setColor(Color.red);  
  stift.fillRect(0, 100, 5, 30);  
  int x = 5;  
  return x;  
 }  
 public void paint(Graphics stift) {  
  stift.setColor(Color.red);  
  stift.fillRect(0, 100, 5, 30);  
  for (int x = point(stift); x < 200; x = x + 1) {  
   String Text = warteAufEingabe(x);  
   stift.setColor(Color.red);  
   stift.fillRect(x, 100, 5, 30);  
   stift.setColor(Color.white);  
   stift.fillRect(x - 5, 100, 5, 30);  
   Zeitschleife();  
   System.out.println(x + "m [" + Text + "]");  
  }  
  System.out.println("200 m : Ziel erreicht!");  
 }  
}  
  

  1. Hallo EneR,

    Dafür wolte ich, immer wenn jemand z.B. die Taste "V" drückt, das sich die Figur vorwärts bewegt. Gibt es irgend eine Möglichkkeit zu gucken, ob jemand eine Taste gedrückt hat oder nicht?

    Verarbeitung von Benutzereingaben funktioniert bei AWT/Swing über Event- und Listener-Objekte.
    Die Klasse Component hat eine Methode addKeyListener, mit der Du Tastaturereignisse abfangen kannst.

    Ausserdem bräuchte ich dann noch eine Möglichkeit, dass man die Taste nicht gedrückt halten kann!

    Ohne eine sehr starke Force-Feedback-Tastatur wird das wohl nicht gehen ;-)

    Du verwendest anscheinend AWT. Wenn Du nicht sehr gute Gründe dafür hast, solltest Du Swing verwenden, da das einen viel größeren Funktionsumfang bietet. Statt Applet müsstest Du dann die Klasse JApplet erweitern.

    Grüße

    Daniel