Java - tastatur abfangen?
Ich möchte in einen java Konsolen Programm die Tastatur abfangen... ich weis wie man mit dem scanner die tatur einleesen kann bis man enter drückt.. ich möchte aber das man eine bestimmte taste drückt und das programm geht weiter, ohne das man enter drücken muss ....
2 Antworten
In einem Java-Konsolen-Programm ist das als solches nicht möglich. Denn die Konsole ist ja nicht Bestandteil der Java-Anwendung, sondern nur das was der Scanner als Input erhält.
Wenn du bei einer Anwendung auf die Eingabe reagieren möchtest, solltest du in Java selbst eine GUI entwerfen, die ein Eingab-Element wie eine "JTextArea" (Swing) oder eine "TextArea" (JavaFX) hat und hier mit entsprechenden Listenern auf die Eingabe reagieren.
Je nachdem wie du das ganze machen möchtest wird das nicht einfach.
Ich gehe davon aus du möchtest, dass dein Programm weiterläuft und der Nutzer die Möglichkeit hat jederzeit/Im bestimmten Zeitfenster eine bestimmte Taste zu drücken, welche dann etwas auslöst. Korrekt?
Falls das der Fall ist musst du mehrere Threads aufmachen, welche parallel laufen. In einem läuft eben dein gegenwärtige Funktion im anderen die Abfrage der Tastatur.
Variante b) Du möchtest, dass der Nutzer einfach nur eine Taste drückt und es geht weiter. z.B. "Drücken sie nun 1 für Optionen oder 2 für Abbrechen". Dann brauchst du einen "Listner". Wie das ganze geht kannst du hier nachlesen:
https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html