Erkennen und handeln auf der Tastatur die Pfeiltasten in Java
G ' Day alle,
Habe ich ein konsolenprojekt, wo es bestimmt ist, drückt der Benutzer die Tastatur Richtungstasten (nicht Ziffernblock) bewegen sich mit einem avatar. Ich habe Schwierigkeiten mit der Kodierung zu überprüfen, drücken Sie diese Tasten. In Pascal war es einfach genug zu bedienen "readkey" und code, zum Beispiel für die #80 für die nach-unten Tastendruck. Ich bin jedoch überfragt, wie die Umsetzung der gleichen Funktionalität in Java, aber ich glaube, ich verstehe den nutzen des Systems.in und BufferedInputStream.
Könnte jemand mir helfen? Ihre Gedanken und Hinweise, sind sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Console-support-Problem in Java ist gut bekannt, ich bin nicht sicher, dass dies machbar ist.
War dies zunächst nicht möglich mit dem System.da das line-basiert.
Sonne schließlich hat ein java.io.Console-Klasse.
Hier sind die JavaDocs:
http://java.sun.com/javase/6/docs/api/java/io/Console.html
Sobald man die Konsole (ich denke aus dem System.Konsole), kann man sich einen reader und vielleicht Lesen Zeichen von ihm, aber ich bin mir nicht sicher, ob es beinhaltet Tasten.
In der Regel sollen Sie sich zu verwenden, Swing-oder AWT-wenn Sie möchten, den Zugang zu der Tastatur, die ist albern.
Als 2007, es war ein feature-request dazu: hier
Wenn java.io.Konsole funktioniert nicht für Sie (ich habe nicht versucht), versuchen JLine. Ich habe es zu lösen,vage ähnliches problem.
Leider ist dies nicht möglich in einer tragbaren Weise:
http://forums.sun.com/thread.jspa?threadID=5351637&messageID=10526512
Unter Windows Lesen aus dem System.in blockieren, bis
enter
gedrückt wird, auch wenn Sie nicht mit einemBufferedReader
. Pfeile werden Durchlaufen die Befehls-history. Versuchen Sie es selbst:Gleiche Problem mit der
Console
Klasse (input buffered unter Windows, Pfeil-Tasten intepreted die von Windows):Nicht mit built-in Java-code. Check-out java curses-Bibliotheken oder JLine wie oben erwähnt, wenn Sie fortfahren möchten.