IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

écouteurs pour pacman


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut écouteurs pour pacman
    BOnjour,
    alors j'ai fait une classe EcouteurTouches qui écoute les touche fléchés du clavier pour déplacer mon pacman.
    J'ai une classe fenêtre qui hérite de Frame à laquelle j'ai essayer de mettre mon écouteur en faisant dans son constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ecouteurTouches = new EcouteurTouches(jeu.getLaby());
    this.addKeyListener(ecouteurTouches);
    Quand j'appuyer sur les touches fléché cela réagissaient.
    Mais je me suis rendu compte que je devait le mettre dans ma classe Plateau (hérite de Panel) qui contient mon labyrinthe (qui lui contient pacman) car c'est dans cette classe que j'enlève et remet mon labyrinthe à chaque changement de niveau.
    Je l'ai mis de la même façon dans le constructeur mais quand j'appuie sur les touches cela ne réagit pas...

    Je ne comprends pas...
    Merci de votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 197
    Par défaut
    c'est normal ton panel est au dessus de ta frame. c'est ce qui contient les objets et donc c'est ton panel qui représente l'espace interieur de ta frame si j'ai bien compri.

    en gros ta frame est une fenêtre qui contien un panel de base mais dans ce panel tu y rajoute ton panel plateau et donc ton panel plateau prend l'ensemble de l'interieur de la frame en conséquence c'est sur lui que doit agire le KeyListener.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    alors comment puis je faire pour résoudre mon problème?

    je n'ai pas trop bien compris ton explication

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 24
    Par défaut
    Bonjour

    Dans ta frame tu as mis deux panels, et ta fonction pour les touches écoute le panel qui contient ton jeu , pas le panel du jeu

    Donc tu dois faire ton KeyListener sur le panel du jeu, pas celui qui le contient

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    En fait, il faut que le composant que tu écoutes avec ton KeyListener aie le focus. Sans ça, il ne recevra pas les KeyEvents (comme tous les JTextField ne réagissent pas en même temps, seul celui qui a le focus reçoit les KeyEvents).

    Sinon, tu peux aussi utiliser un AWTEventListener pour te passer de ces problèmes de focus et recevoir tous les KeyEvents du programme.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    En fait dans ma Frame j'ajoute un panel Plateau dans lequel je voudrais mettre mon écouteur de touches donc cela devrait marché non?
    Ce n'est pas un Panel dans un panel...

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Dans ma classe Plateau, j'ai essayer d'y mettre les écouteurs mais cela ne marche pas...
    et j'ai essayer de implémenter ma classe avec Awteventlistenet
    et j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void eventDispatched(AWTEvent event)
    	{
    		System.out.println("test");
    	}
    La fonction n'est jamais appelé lorsque j'appuie sur une touche...

    Merci de votre aide

Discussions similaires

  1. Un écouteur pour les touches alpha-numérique
    Par ChPr dans le forum Android
    Réponses: 1
    Dernier message: 23/11/2014, 20h55
  2. Réponses: 4
    Dernier message: 03/07/2013, 10h28
  3. Un écouteur pour plusieurs view
    Par ChPr dans le forum Composants graphiques
    Réponses: 6
    Dernier message: 15/03/2013, 23h34
  4. Paramètre pour écouteur d'evenement
    Par flzox dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/05/2008, 17h20
  5. Projet PacMan pour n'importe quelle machine Unix : C ou Java ?
    Par v4np13 dans le forum Développement 2D, 3D et Jeux
    Réponses: 14
    Dernier message: 21/03/2007, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo