Probleme écouteur fenetre

kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009 - 2 févr. 2009 à 14:18
kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009 - 3 févr. 2009 à 09:27
bonjour, je réalise une application puissance 4 qui se joue au clavier jusque la pas de probleme
mais je dois avoir des boutons sur ma fenetre. et quand je rajoute mes boutons ba mon application ne recupere pas les actions de mon clavier.
avez vous une idée merci bien?

...

10 réponses

dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
2 févr. 2009 à 15:04
Salut,
Avec un petit bout de code, ça serait sympa.
Genre quels écouteurs utilises tu pour le clavier et pour la souris?
Sur quels composants rajoutes tu les écouteurs?

C'est bizarre quand même parce que bon les écouteus souris et clavier sont bien différent...

<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
kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2009 à 15:16
écouteur clavier =
public class EcouteurClavier extends KeyAdapter{} avec mes fonctions a l'interieur

mafenetre.addKeyListener(new EcouteurClavier ());
apres j'ai créé des fonctions pour mettre sur mes boutons :

class actionEnregistrer extends AbstractAction
{
public void actionPerformed(ActionEvent arg0)
{
traitement
}
}

apres pour mettre mon action sur mon bouton
actionEnregistrer action = new actionEnregistrer();
monbouton.setAction(action);

ps ne pas faire attention aux eventuelles faute de frappes car cela fonctionne

...
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
2 févr. 2009 à 15:27
Salut,
Oula, euh pour le clic du bouton tu va changer.

Tu vas remplacer "extends AbstractAction" par un "implements ActionListener"

Et à tes boutons, tu leur mettras l'écouteur comme ceci :
monBouton.addActionListener(new ActionEnregistrer());

Ca sera mieux je pense.

<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
kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2009 à 15:53
cela ne change rien au niveau de la gestion de l'écouteur clavier car normalement quand j'appuie sur une touche de clavier cela doit faire une action mais des que je rajoute mon menu ca ne marche plus
c'est ca en fait le probleme

...
0

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

Posez votre question
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
2 févr. 2009 à 16:11
Salut,

Ben visiblement, a cause de ton AbstractAction, elle va capter les "Appui touche" du clavier... qui va couvrir le KeyListener, en quelque sorte.

Pour un clic souris sur un composant, il faut utiliser addActionListener et pas AbstractAction.
As tu essayé au moins?

<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
kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009
2 févr. 2009 à 16:28
oui oui j'ai essayé mais mon probleme n'est pas au niveau des boutons mais au niveau de mon écouteur clavier
quand je n'ajoute pas mes boutons sur la fenetre l'application fonction correction et keylistener aussi
mais des que je met les boutons bas mon keylistener ne fonctionne plus
merci

...
0
dvoraky Messages postés 744 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 9 mai 2010 8
2 févr. 2009 à 16:41
Salut,

Essai de rajouter les boutons sans leur attribuer une Action dessus.

Tu ne mets pas la ligne
monBouton.setAction(action)
Et ne créé même pas de variable de ta classe actionEnregistrer
Normalement, tu devrais avoir des boutons mais bon quand tu cliques sur eux ça fera rien.

...
Non je suis bête...
En fait, dès que tu vas rajouter un bouton, le focus va lui être attribuer... Donc ta fenetre va perdre le focus pour aller sur le bouton et donc je ne pense pas que l'écouteur clavier continue à écouter...
J'appelle du renfort pour toi.

<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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
2 févr. 2009 à 17:03
Salut,

Le setAction définit des actions pour les menus et les boutons (une action étant un événement qui peut se déclencher indifférement par la souris ou le clavier).

Je n'ai jamais utilisé cà, mais il est possible qu'en mettant un listener d'action au lieu d'un mouseEventListener, les événements claviers ne sont plus déclenchés.

Dur de dire ce qui cloche avec le peu de code que tu nous donne là ! Peut-être tout simplement que tu as programmé la même touche pour le menu et une fonctionnalité de ton programme, et du coup, l'évent est traîter par l'action et non plus par le KeyListener.
______________________________________
DarK Sidious
0
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
3 févr. 2009 à 01:50
Salut
Je ne suis pas un expert (enfin, pas encore!), cependant, je sais ceci:
-Lorsqu'on appuie sur une touche, alors l'action liée à cette touche est envoyée au component qui à le focus.

-Lorsqu'on démarre une JFrame avec un bouton, alors le bouton a le focus.

-Donc, lorsqu'on démarre une application et que le bouton a le focus, alors les evenements reliés au clavier sont envoyés au ... bouton ! (Pas n'importe lequel en plus, si l'on ajoute plus d'un bouton, alors le Focus est transmis au premier bouton ajouté!).
Alors ce que, je crois, que tu as a faire, c'est d'ajouter un WindowFocusListener à ta fenêtre, ensuite, une fois démarée, tu lui transfères le focus. Ainsi, les signaux transmis à l'OS via le clavier seront envoyés a la fenêtre, qui elle a le KeyListener d'enregistrée, et devrait exécuter le code que tu lui as indique.

J'espère que ca t'aides un peu
chris081

Voila un tuto:
Tutoriel

<hr width="100%" />

Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici
0
kwantine Messages postés 19 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 2 septembre 2009
3 févr. 2009 à 09:27
bonjour, merci de vos réponses mais en fait des que j'ajoute un bouton bas je lui ajoute un keylistener qui correspond a ma fonction pour récupéré les touches de mon clavier
voila encore merci de vos réponses

...
0