Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hiho,
ich hoffe ich hab hier nichts übersehen, was sich damit beschäftigt ... ansonsten anmotzen, verlinken, closen, danke
So, zum Thema:
ich möchte, wenn ich eine Methode aufrufe, so lange warten bis eine Taste gedrückt wurde.
Der KeyListener ruft dabei doch nur seine KeyPressed-Methoden auf, oder?
Oder hab ich da etwas noch nicht gerafft?
Java:
public
char waitForCommand(){
return read_a_key();
}
ich hab (noch) keine Ahnung wer da was aufruft.
Ich bin mit dem Thema noch recht unerfahren.
Handelt sich um ein Civilizations2 Klon, also karte mit rundenbasierten Zügen.
Deswegen kann solange gewartet werden bis denn mal etwas gedrückt wird.
Und das was gedrückt wird, das soll zurückgegeben werden.
Nur hab ich noknowhow
Das Event-Modell läuft grundsätzlich so ab:
Du hast eine Komponente, welcher du einen Listener hinzufügts (zB ActionListener, MouseListener, KeyListener)
Wird nun auf der Komponente ein Event ausgelöst, so wird der entsprechende Listener aufgerufen.
zB Ein Button besitzt einen ActionListener. Wird der button gedrückt, wird die actionPerformed des Listener aufgerufen.
oder Eine Komponente beistzt einen KeyListener. Wird ein key gedrückt, wird die entsprechende keyPressed/keyReleased.. Methode aufgerufen.
das gleiche mit der Maus. mouseEnterred/mouseMoved etc.
Diese Methoden lösen im normalfall eine Aktion aus. zB Button gedrückt --> actionPerformed --> öffne Fenster...
oder "f" Taste gedrückt --> keyPressed wird aufgerufen --> starte Spiel
so auf die schnelle. Das Tutorial geht von Swing aus, was du auch bevorzugen solltest vor AWT.
Ich hoffe das hilft ein wenig weiter.
jo, danke erstmal dafür,
hab mich nun ein bisschen eingelesen, kann mein Problem aber immer noch nicht lösen.
Ich hab ne Einheit die soll solange warten bis etwas gedrückt wurde. Und ich will eigentlich dafür kein Thread starten, und mit ner
Java:
while(!validcommand()){}
so lange zuwarten bis dort mit keypressed etwas eingegeben wurde ist ja auch nicht soo das Wahre.
Also doch Thread? Also von Keypressed aus notifyen? :/ gibt's da nichts passenderes?
Die Beispielprogramme haben es immer direkt in der Keypressed-Methode aus aufgerufen.