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 :

Problème d'écouteur clavier


Sujet :

AWT/Swing Java

  1. #1
    m@t
    m@t est déconnecté
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 172
    Points : 122
    Points
    122
    Par défaut Problème d'écouteur clavier
    Je dois implementer un jeu. je vien de développer le jeu ne mode texte et j'aimerais désormais l'implementer en quelque chose de plus graphiqie. :oui:

    Toutefois,je me trouve confronté à un problème assez gênant. Je n'arrive pas à mettre en place une fenêtre graphique composée de menus, etc, tout en conservant l'écouteur clavier.

    A la compilation cela ne pose aucun problème mais dès que j'ajoute un JMenuBar sur ma JFrame le KeyListener ne fonctionne plus...

    Après avoir essayer pas mal de choses, j'aimerais bien un petit coup de main car disons que ça commence à me chauffer les oreilles

    Voici la partie du code concerné:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class Plateau extends JFrame implements PlateauI,ActionListener,KeyListener{
     
    	private JButton quitter;
    	private JButton pause;
    	private JPanel fenetre;
    	private Component composant;
     
    	public Plateau(int tailleMatrice){	
     
     
    		setTitle("Bomberman");
    		setSize(new Dimension(800,600));
    		setBackground(Color.white);
     
    		setJMenuBar(creerMenu());
     
    		getContentPane().add(creerFenetre(),BorderLayout.CENTER); //On ajoute les composants
    				getContentPane().addKeyListener(this);
    		setVisible(true);
     
    		                addWindowListener(new WindowAdapter(){  
    			public void windowClosing(WindowEvent e){  
    				System.exit(0); 
                		} 
             	});
     
     
    		//composant= creerFenetre();
     
     
     
     
    	}
     
    	public JMenuBar creerMenu(){
     
     
    		JMenuBar menu = new JMenuBar(); //Creation de la barre de menu
     
     
    		JButton pause = new JButton("Pause"); // Creation du bouton pour mettre le jeu en pause
    		pause.addActionListener(this);
     
    		quitter = new JButton("Quitter"); // Creation du bouton pour quitter le jeu
    		quitter.addActionListener(this);
    		menu.setLayout(new FlowLayout());  
    		menu.add(pause);   //Ajout des elements sur le Layout
    		menu.add(quitter);
     
    		//fenetre.add(menu,BorderLayout.NORTH);  // Ajout du menu en haut
    		//fenetre.add(dessin,BorderLayout.CENTER); // Ajout de la zone de dessin au centre
    		return menu;
     
    	}
    	public Component creerFenetre(){
     
    		fenetre = new JPanel();  //Creation de la fenetre principale
     
    		return fenetre;
     
    	}
    Je dois sûrement pas placer mon écouteur clavier comme il le faudrait mais je ne vois pas comment faire autrement.
    Merci d'avance pour vos réponses





    [Modéré par Didier]
    Modif du tag dans le titre (ancien Java)
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Ah Java... quand tu nous prends la tête...

    Je ne sais pas quelle est la bonne réponse, je propose donc juste 2 pistes que tu as peut-être déjà explorées:

    1 - As tu essayé de mettre le KeyListener sur l'objet généré par creerFenetre()?

    2 - Je ne connais pas le fonctionnement de la JMenuBar, mais est-il possible que ce soit elle qui capte les touches clavier par un mauvais sort? je pense pas mais bon... sans autre idée...

    Désolé si ça ne t'aide pas, mais bon courage et bonne année!

    Adjanakis
    Pensez au tag

  3. #3
    m@t
    m@t est déconnecté
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 172
    Points : 122
    Points
    122
    Par défaut
    Oui j'ai déjà essayé de mettre le keyListener sur le Component renvoyé par la méthode creerFenetre mais cela sans résultats

    Pour ta deuxième supposition je n'en sais pas plus que toi

    Merci de ta réponse et bonne année aussi

    Si d'autres personnes ont une idée...

  4. #4
    m@t
    m@t est déconnecté
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 172
    Points : 122
    Points
    122
    Par défaut
    UPPPPP

  5. #5
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Si c"est la JMenuBar qui provoque ce comportement euh.. vire là non ?
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 140
    Points
    140
    Par défaut
    Moi, je dirai que c'est certainement un problème de focus. Donc commence par préciser que ton plateau peut recevoir le focus, avec


    Et si ça fonctionne toujours pas, est-ce que ça marche quand tu cliques à l'intérieur de ta fenêtre ? Dans ce cas, il faudra certainement songer à redonner le focus à ton Plateau après chaque traitement de ton JMenuBar.

  7. #7
    m@t
    m@t est déconnecté
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 172
    Points : 122
    Points
    122
    Par défaut


    Cool ça a l'air de marcher.. Merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème langue du clavier
    Par mencaglia dans le forum Windows XP
    Réponses: 4
    Dernier message: 13/02/2007, 21h35
  2. [UBUNTU] Problèmes avec mon clavier
    Par Franck.H dans le forum Ubuntu
    Réponses: 4
    Dernier message: 25/07/2006, 22h20
  3. Richeditctrl - problème de saisie clavier
    Par KO-Tek dans le forum MFC
    Réponses: 5
    Dernier message: 20/12/2005, 11h15
  4. problème de caractères clavier!!!
    Par brunetc dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 10/06/2005, 13h39
  5. [JMenuBar] Problème d'écouteurs
    Par Reward dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 17/09/2004, 11h22

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