Détecter et agir sur le clavier les touches de direction en Java
G'day tous,
J'ai un projet de console où il est prévu que l'utilisateur appuie sur le clavier les touches de direction (sans pavé numérique) pour déplacer un avatar. J'ai de la difficulté de codage de vérifier pour la presse de ces touches. En Pascal, il était assez facile à utiliser "readkey" et le code, par exemple, pour n ° 80 de la baisse de pression de touche. Cependant, je suis perplexe, comment mettre en œuvre les mêmes fonctionnalités en Java, mais je pense que je comprends l'utilisation du Système.et BufferedInputStream.
Quelqu'un pourrait-il m'aider? Votre avis ou conseils sont appréciés.
OriginalL'auteur elwynn | 2009-02-21
Vous devez vous connecter pour publier un commentaire.
La Console de problème de prise en charge de Java est bien connu, je ne suis pas sûr que c'est faisable.
Ce n'était pas possible dès le début avec le Système.depuis qu'il a utilisés pour les travaux de la ligne de base.
Soleil finalement ajouté un java.io.Console de classe.
Voici sa Javadoc:
http://java.sun.com/javase/6/docs/api/java/io/Console.html
Une fois que vous obtenez la console (je pense à partir du Système.la console), vous pouvez obtenir un lecteur et peut-être lire des caractères, mais je ne sais pas si elle comprend des touches.
Généralement, vous êtes censé utiliser Swing ou AWT si vous voulez accéder au clavier, ce qui est stupide.
En 2007, il y avait une demande de fonctionnalité: ici
Je recommande Swing.
Ne pas revenir à Pascal. Java a de nombreux avantages. Les applications de Console d'utilisation de la console principalement basé sur la ligne de sortie et d'entrée, ils n'étaient pas conçus pour plein d'interaction, c'était une aberration de DOS est toujours pris en charge en Pascal.
Depuis, plus les chances sont que votre programme s'exécute dans une interface graphique, système d'exploitation, vous pouvez utiliser le swing et l'utilisation d'une toile qui affiche simplement le texte comme une console si vous voulez faire la base d'un texte de travail.
La Console ne fonctionne pas.
OriginalL'auteur Uri
Malheureusement, ce n'est pas possible de façon portable:
http://forums.sun.com/thread.jspa?threadID=5351637&messageID=10526512
Sur Windows, la lecture à partir du Système.en se bloque jusqu'à ce
enter
est pressé, même lorsque vous n'utilisez pas unBufferedReader
. Des flèches de cycle par le biais de la commande de l'histoire. Essayez-le vous-même:Même problème à l'aide de la
Console
classe (entrée tamponné sous Windows, les touches fléchées intepreted par Windows):OriginalL'auteur vladr
Si java.io.la console ne fonctionne pas pour vous (je n'ai pas essayé), essayez de JLine. Je l'ai utilisé pour résoudre un vaguement problème similaire.
OriginalL'auteur Jason S
Pas avec construit-dans du code Java. Découvrez java malédictions bibliothèques ou JLine comme mentionné ci-dessus, si vous voulez continuer.
OriginalL'auteur Barett