2011-10-31 8 views
1

J'ai fait un clone Pong, et j'ai rencontré un problème. Le KeyListener ne fonctionne que parfois. Il n'y a aucun modèle que j'ai pu trouver.KeyListener fonctionne parfois seulement

Pour référence est ici mon Pong.java (la classe principale): http://pastebin.com/8d7BqK4x

Voici le Board.java (Graphics et KeyListener): http://pastebin.com/0zb526BE

+0

Assez petit programme que vous avez là 1+ –

+2

Pourquoi avez-vous cette question? Vous avez déjà eu cette même réponse quand vous avez posé cette question hier! Http://stackoverflow.com/quest ions/7940173/how-do-i-use-keyeventdispatcher – camickr

+0

Pourquoi pensez-vous que la réponse changerait? –

Répondre

2

Habituellement vous ne voulez pas utiliser un KeyListener en raison de concentrer les questions (ce qui est probablement la raison pour laquelle votre auditeur écoute seulement parfois - probablement votre écoute au composant perd le focus et donc le KeyListener perd sa fonction

.

Mieux vaut utiliser les liaisons de touches où vous n'avez pas à vous soucier autant des problèmes de mise au point et où vous avez affaire à un construit de niveau supérieur, que Swing utilise lui-même pour écouter les composants.

+0

@ Cg2916 encore le même résultat à partir de http://stackoverflow.com/questions/7940173/how-do-i-use-keyeventdispatcher/7940227#7940227 – mKorbel

3

KeyEvents ne sont générées lorsqu'un composant a le focus.

Une meilleure approche consiste à utiliser Key Bindings qui fonctionnent même lorsque le composant n'a pas de focus.