Swing > Barra dei menu #2

Vedi la versione AWT.

Caratteristiche aggiuntive rispetto a #1

  1. la prima voce della barra dei menu, ALFA, presenta una linea separatrice
  2. la seconda voce della barra dei menu, BETA, presenta un sottomenu, BETA-C
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
class MenuJFrame2 extends    JFrame
                  implements ActionListener
{
    public MenuJFrame2()
    {
       JMenuBar   mb=new JMenuBar();
       JMenu      m1=new JMenu("ALFA"),        m2=new JMenu("BETA"),         m3=new JMenu("GAMMA"),
                                              m23=new JMenu("BETA-C");
       JMenuItem m11=new JMenuItem("ALFA-A"), m21=new JMenuItem("BETA-A"),  m31=new JMenuItem("GAMMA-A"),
                 m12=new JMenuItem("ALFA-B"), m22=new JMenuItem("BETA-B"),
                 m13=new JMenuItem("ALFA-C"), 
                 m14=new JMenuItem("USCITA"), m24=new JMenuItem("BETA-D"),
                                             m231=new JMenuItem("BETA-C-A"),
                                             m232=new JMenuItem("BETA-C-B"),
                                             m233=new JMenuItem("BETA-C-C"); 
                m11.addActionListener(this);  m21.addActionListener(this);  m31.addActionListener(this);
                m12.addActionListener(this);  m22.addActionListener(this); 
                m13.addActionListener(this); 
                m14.addActionListener(this);  m24.addActionListener(this); 
                                             m231.addActionListener(this); 
                                             m232.addActionListener(this);
                                             m233.addActionListener(this); 
                 mb.add(m1);                   mb.add(m2);                  mb.add(m3);
                 m1.add(m11);                  m2.add(m21);                 m3.add(m31);
                 m1.add(m12);                  m2.add(m22);
                 m1.add(m13);                  m2.add(m23);
                 m1.addSeparator();            m2.add(m24);
                 m1.add(m14);                 m23.add(m231);
                                              m23.add(m232);
                                              m23.add(m233); 
       this.setJMenuBar(mb); 
       this.setSize(640, 480);
       this.setVisible(true);
    }
 
    public void actionPerformed(ActionEvent ae)
    {
       String nome=ae.getActionCommand();
       String msg ="";
 
            if(nome.equals("ALFA-A")  ) msg="...ALFA...A...";
       else if(nome.equals("ALFA-B")  ) msg="...ALFA...B...";
       else if(nome.equals("ALFA-C")  ) msg="...ALFA...C...";
       else if(nome.equals("USCITA")  ) System.exit(0);
       else if(nome.equals("BETA-A")  ) msg="...BETA...A...";
       else if(nome.equals("BETA-B")  ) msg="...BETA...B...";
       else if(nome.equals("BETA-C-A")) msg="...BETA...C...A...";
       else if(nome.equals("BETA-C-B")) msg="...BETA...C...B...";
       else if(nome.equals("BETA-C-C")) msg="...BETA...C...C...";
       else if(nome.equals("BETA-D")  ) msg="...BETA...D...";
       else if(nome.equals("GAMMA-A") ) msg="...GAMMA..A...";
       else                             msg="Evento non previsto!";
 
       System.out.println(msg);
    }
 
    public static void main(String args[])
    {
       MenuJFrame2 mf=new MenuJFrame2();
    }
}