Comment puis-je vérifier si l'utilisateur appuie sur une touche?
En java j'ai un programme qui doit vérifier en permanence si un utilisateur appuie sur une touche.
Ainsi, Dans psuedocode, quelque chose comme
if (isPressing("w"))
{
//do somthing
}
Merci d'avance!
- En java, mais à l'aide d'une interface graphique cadre (swing?)?
Vous devez vous connecter pour publier un commentaire.
En java, vous n'avez pas de vérifier si une touche est pressée, au lieu de vous écouter à
KeyEvent
s.Le droit chemin pour atteindre votre objectif consiste à inscrire un
KeyEventDispatcher
, et mettre en œuvre afin de maintenir l'état de la touche souhaitée:Alors vous pouvez toujours utiliser:
Vous pouvez, bien sûr, utiliser la même méthode pour mettre en œuvre
isPressing("<some key>")
avec une carte de clés et de leur état enveloppé à l'intérieurIsKeyPressed
.IsKeyPressed.this
avecIsKeyPressed.class
). Lesynchronized
bloc, en passant, n'est pas vraiment nécessaire dans ce cas.isWPressed()
, vous pourriez avoir des problèmes de mise en cache. Il est possible qu'unvolatile boolean
pouvez résoudre ce problème.HashMap<Integer, Boolean>
. Entier pour leKeyCode
, Boolean, pour des raisons évidentes.public static void main
? Eclipse le reconnaît comme un autre programme pour le reste de mon projet. Comment puis-je résoudre ce problème? Je suis encore à m'habituer à la java façon de faire les choses :/Essayez ceci:
Vous avez à mettre en œuvre
KeyListener
,prendre un coup d'oeil ici:http://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyListener.html
Plus de détails sur la façon de l'utiliser:
http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html