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 :fou:
Voici la partie du code concerné:
[cpp]
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;
}
[/cpp]
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