comment puis-je détecter les touches fléchées en java?
Je sais comment mettre en place une clé de l'auditeur; ce n'est pas le problème.
public void keyTyped(KeyEvent event) {
if (event.getKeyChar() == KEY_LEFT) {
cTDirection = LEFT;
}
if (event.getKeyChar() == 40) {
cTDirection = DOWN;
}
if (event.getKeyChar() == 39) {
cTDirection = RIGHT;
}
if (event.getKeyChar() == 38) {
cTDirection = UP;
}
}
Que dois-je mettre où l' LEFT_KEY
/40 /39 /38? Quand j'ai créé un keylistener et saisissez les clés, je crois que j'ai obtenu 37 - 40. Je ne sais pas quoi mettre là pour vous écouter pour juste les touches fléchées.
OriginalL'auteur Zeveso | 2010-12-23
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser:
répéter avec
VK_DOWN, VK_LEFT, VK_RIGHT
.Il y a séparer les codes pour le pavé numérique:
VK_KP_UP, VK_KP_DOWN, VK_KP_LEFT, VK_KP_RIGHT
si vous en avez besoin.Voir KeyEvent pour tous les codes.
Ce sont les codes habituels de flèches. Si vous rencontrez toujours des problèmes, je vous suggère de poster plus de votre code, parce que vous avez un problème quelque part d'autre.
OriginalL'auteur robert_x44
KeyEvent.VK_LEFT
,KeyEvent.VK_RIGHT
, etc.Aussi, vous devez utiliser
getKeyCode
, pasgetKeyChar
.getKeyChar
est pour les touches qui correspondent en fait à des caractères (lettres, chiffres, espaces, etc.).Oui c' affecter les touches fléchées.
c'est le code pour la "régulière" des touches fléchées. Peut-être que vous voulez le pavé numérique flèches au lieu de cela, dans quel cas utiliser
VK_KP_LEFT
, etc. Si cela ne fonctionne toujours pas, alors dites-nous ce quegetKeyCode
est de retour pour votre "régulier touches fléchées".Je n'ai fait de voir un exemple qui a travaillé avec VK_LEFT et tous, mais ce n'était pas pour moi - c'était le retour de 37 pensé 40 dans l'ordre de GAUCHE en HAUT à DROITE vers le BAS
Euh... VK_LEFT=37, VK_UP=38, VK_RIGHT=39, VK_DOWN=40. Voir le tableau ici: download.oracle.com/javase/6/docs/api/...
OriginalL'auteur Laurence Gonsalves
Utilisation
Les autres clés sont:
KeyEvent.VK_UP
KeyEvent.VK_RIGHT
KeyEvent.VK_DOWN
OriginalL'auteur Andreas Løve Selvik
Voici ce que j'ai fait pour le faire fonctionner:
Pour moi, il ne fonctionne pas si je l'ai mis dans KeyPressed mais fonctionne très bien si je l'ai mis dans KeyTyped.
OriginalL'auteur Abhas Tandon
Utiliser le
getKeyCode()
méthode et de comparer la valeur retournée contreKeyEvent.VK_LEFT
,KeyEvent.VK_RIGHT
,KeyEvent.VK_UP
etKeyEvent.VK_DOWN
constantes.OriginalL'auteur Progman
d'abord déclarer la méthode init
puis utilisez intérieur de la classe qui implémente KeyListner
vous pouvez également utiliser l'adaptateur à la place de l'écriture Keyreleased & keyTyped .... comme vous le savez
OriginalL'auteur ahmed reda
btw dans KeyAdapter -> keyTyped getCharCode() ne fonctionne pas
Vous devriez essayer keyPressed ou keyReleased
OriginalL'auteur Elendil