Gestion evenement d'un menu [Résolu]

Signaler
Messages postés
77
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
14 février 2008
-
Messages postés
77
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
14 février 2008
-
Voila

Je crée un menu
Pour mon exemple je fais simple
J'ai le menu fichier avec dedans, nouveau et quitter

Quand on clic sur nouveau, une fenetre s'affiche
quand on clic sur quitter ca quitte

Voici mon code

private

JMenuBar setMenu() {

menuBar =
new JMenuBar();

//ajout des element du menu Fichier

menu =
new JMenu(
"Fichier");

menuBar.add(
menu);

menuItem =
new JMenuItem(
"Quitter");

menuItem.addActionListener(
this);

menu.add(
menuItem);

menuItem =
new JMenuItem(
"New");

menuItem.addActionListener(
this);

menu.add(
menuItem);

return
menuBar;}




public

void actionPerformed(ActionEvent e) {

if (e.getSource() ==
menuItem) System.exit(1);}

Comment gerer 2 evenemenr sur un meme objet
Ce qu'il faudrait c'est pouvoir faire le test sur "Quitter" et "New" mais je ne trouve pas comment

kikisé ilmeldit

4 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

Je ne comprends pas ta question.
J'ai déclaré mes JMenuItem comme attributs de ma classe parceque j'ai besoin de garder trace de leurs référence, sinon tu peux ne pas les déclarer en tantque attributs de ta classe et utiliser ceci:


public class TestMenu extends JFrame implements ActionListener {
    public static final String ACTION_NEW  = "nouveau";
    public static final String ACTION_QUIT = "quitter";

    private void createMenu () {
       JMenuBar menuBar = new JMenuBar ();
       JMenu fileMenu = new JMenu ("Fichier");

       JMenuItem newItem = new JMenuItem ("Nouveau");
       newItem.addActionListener (this);
       newItem.setActionCommand (ACTION_NEW);

       JMenuItem quit



Item = new JMenuItem ("Quitter");

       quitItem.addActionListener (this);
       quitItem.setActionCommand (ACTION_QUIT);

       fileMenu.add (newItem);
       fileMenu.addSeparator ();
       fileMenu.add (quitMenu);

       menuBar.add (fileMenu);


       setJMenu (menuBar);
    }

    public TestMenu () {
       super ("Test Menu");
       // ...
      
       createMenu ();
    }
   
    public void actionPerformed (ActionEvent ae) {
       if (ae.getActionCommand ().equals (ACTION_NEW)) {
          // ...
       }
       else if (ae.getActionCommand ().equals (ACTION_QUIT))
          System.exit (0);
    }
}
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut:

Pourquoi tu compilque les choses alors que tu peux t'en sortir facilement.

public class TestMenu extends JFrame implements ActionListener {
    private JMenuItem newItem;
    private JMenuItem quitItem;

    private void createMenu () {
       JMenuBar menuBar = new JMenuBar ();
       JMenu fileMenu = new JMenu ("Fichier");

       newItem = new JMenuItem ("Nouveau");
       newItem.addActionListener (this);
      
       quit

Item = new JMenuItem ("Quitter");

       quitItem.addActionListener (this);

       fileMenu.add (newItem);
       fileMenu.addSeparator ();
       fileMenu.add (quitMenu);

       menuBar.add (fileMenu);




       setJMenu (menuBar);
    }

    public TestMenu () {
       super ("Test Menu");
       // ...
      
       createMenu ();
    }
   
    public void actionPerformed (ActionEvent ae) {
       if (ae.getSource () == newItem) {
          // ...
       }
       else if (ae.getSource () == quitItem)
          System.exit (0);
    }
}
Messages postés
77
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
14 février 2008

J'ai une ptite idée, est ce que je suis obligé de declarer autant de JMenuItem que j'ai d'élément dans mon menu?
Messages postés
77
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
14 février 2008

Sympa la méthode, merci, excatement ce que je voulais
Au debut j'avais du mal mais la j'ai reussi a créer ma classe menu qui s'instencie dans la création de ma fenetre
Je vois maintenant que j'ai encore beaucoup de boulot avant d'avoir une interface la route

mais merci pour la technique