Erkennen und Ausführen von Tastaturrichtungsschlüsseln in Java

8

Guten Tag,

Ich habe ein Konsolenprojekt, bei dem der Benutzer die Richtungstasten der Tastatur (nicht numerisches Tastenfeld) drückt, um einen Avatar zu bewegen. Ich habe Schwierigkeiten beim Codieren, um nach dem Drücken dieser Tasten zu suchen. In Pascal war es einfach genug, "readkey" und Code zu verwenden, zum Beispiel für # 80 für den Abwärts-Tastendruck. Ich bin jedoch ratlos, wie ich dieselbe Funktionalität in Java implementieren kann, obwohl ich denke, dass ich die Verwendung von System.in und BufferedInputStream verstehe.

Könnte mir jemand helfen? Ihre Gedanken oder Hinweise werden sehr geschätzt.

    
elwynn 21.02.2009, 02:42
quelle

3 Antworten

5

Das Konsolenunterstützungsproblem in Java ist allgemein bekannt, ich bin nicht sicher, ob dies machbar ist.

Das war mit System.in zunächst nicht möglich, da es linienbasiert funktionierte.

Sun fügte schließlich eine java.io.Console-Klasse hinzu.

Hier sind seine JavaDocs: Ссылка

Sobald Sie die Konsole (ich denke von System.console) bekommen, können Sie einen Leser und vielleicht lesen Sie Zeichen von ihm, aber ich bin mir nicht sicher, ob es Schlüssel enthält.

Im Allgemeinen sollten Sie Swing oder AWT verwenden, wenn Sie auf die Tastatur zugreifen wollen, was albern ist.

Seit 2007 gab es eine Feature-Anfrage: hier

    
Uri 21.02.2009, 02:50
quelle
6

Leider ist das auf portable Weise nicht möglich:

Ссылка

Unter Windows wird das Lesen von System.in blockiert, bis enter gedrückt wird, auch wenn Sie kein BufferedReader verwenden. Pfeile durchlaufen die Befehlsgeschichte. Probieren Sie es selbst aus:

%Vor%

Gleiches Problem mit der Klasse Console (Eingabe unter Windows gepuffert, Pfeiltasten von Windows interpretiert):

%Vor%     
vladr 21.02.2009 02:57
quelle
4

Wenn java.io.console nicht für Sie funktioniert (ich habe das nicht versucht), versuchen Sie JLine . Ich habe damit ein vage ähnliches Problem gelöst.

    
Jason S 21.02.2009 18:38
quelle

Tags und Links