KeyListener et JButton dans une meme fenetre

AnneSoAndClairounette Messages postés 3 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 8 décembre 2008 - 19 nov. 2008 à 14:03
abmirah Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 16 avril 2010 - 16 avril 2010 à 15:48
Dans le cadre des cours, nous devons rendre un  projet d'informatique et nous avons décidé de créer un mini
jeu. Pour cela nous avons besoin de bouger un petit personnage avec les
touches du clavier, avec addKeyListener(this). (et nous n'avons aucune
connaissance sur le this ^^). 
Ce qui marche lorsque le panneau n'est constitué que de JLabel en plus du personnage.
 
Cependant, en ajoutant un JButton (ou un autre panneau), le contrôle du clavier ne fonctionne plus : on ne peut plus déplacer le personnage.
 
Est il réellement possible de garder le contrôle du clavier tout en ajoutant des JButton? Si oui comment?

 
Merci d'avance.

Clairounette et Anne-So

6 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
19 nov. 2008 à 14:12
Salut,

Le this fait référence à l'instance de ta classe. Pour que cela marche tu as du mettre "implements KeyListener" à ta classe... pas top.
Je te conseille de faire plutôt :
...addKeyListener(new KeyListener() {
               // tu verras ce que cela met
               ....
   });
Comme ça plus besoin de mettre le implements KeyListener. Si tu travailles avec Eclipse, fais "...addKeyListener(new KeyListener(" et là controle + espace

Ensuite, si ton personnage ne bouge plus, c'est surement qu'il a perdu le focus... je ne vois que ça, à première vue...
Essayes de voir de ce côté-ci...

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
27 nov. 2008 à 13:49
Si je ne me trompe il y a aussi un soucis au niveau swing <--> keylistener....
Certain composant swing réagisse à des élément clavier par défaut d'où des conflit....
Mais c'est à confirmer...
0
salica Messages postés 1 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 10 décembre 2008
10 déc. 2008 à 22:04
Bonsoir à tous.
Je pense avoir le même problème.
En effet, j'ai un keyListener ainsi que des boutons dans une fenetre.
Tant que je n'appuie sur aucun bouton, aucun problème, le keyListener marche parfaitement.
Mais dès que j'appuie sur un bouton, le keyListener ne marche plus

Mon keyListener s'applique sur ma fenétre donc j'ai du rajouter :" this.setFocusable(true);" pour que ça marche
A noter que j'ai fait le keyListener comme l'a indiqué dvoraky.

J'aimerais donc savoir si ce problème a une solution et si oui, laquelle ?

merci de votre réponse
0
Anwaa Messages postés 1 Date d'inscription mercredi 21 octobre 2009 Statut Membre Dernière intervention 22 octobre 2009
22 oct. 2009 à 16:19
Bonjour j'ai exactemnt le meme probleme que celui posé ici, en fait j'ai un JFrame ou j'ai mis un boutton et j'ai rajouté un keyListener à mon JFrame mais le probleme le keyListener ne reagit pas dés lors que je clique sur le boutton
quelqu'un aurait une solution ??? merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abmirah Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 16 avril 2010
16 avril 2010 à 15:35
Il est un peu tard mais pour ceux que seraient interressés par une réponse.
J'avais aussi un conflit lorsque dans la meme JFrame j'avais des JButton et Keylistener.
En rajoutant setFocusable(true) dans la classe correspondant a ma frame j'ai réglé ce problème :)
0
abmirah Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 16 avril 2010
16 avril 2010 à 15:48
Désolée pour le précédent message ca ne marche toujours pas u_u
0
Rejoignez-nous