Gestion evenement d'un menu

Résolu
bmikl59 Messages postés 77 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 14 février 2008 - 15 déc. 2006 à 15:41
bmikl59 Messages postés 77 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 14 février 2008 - 15 déc. 2006 à 16:48
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

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
15 déc. 2006 à 16:04
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);
    }
}
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
15 déc. 2006 à 15:53
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);
    }
}
0
bmikl59 Messages postés 77 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 14 février 2008
15 déc. 2006 à 15:55
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?
0
bmikl59 Messages postés 77 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 14 février 2008
15 déc. 2006 à 16:48
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
0
Rejoignez-nous