Barra dei menu #3

Ulteriori caratteristiche

  1. la prima voce del primo menu, ALFA-A, presenta un tasto di scelta rapida, Control-A
  2. la terza voce della barra dei menu, GAMMA, presenta una casella di scelta, Chiacchierone

Interagisci con l’applicazione e i messaggi corrispondenti appariranno nella console.

import java.awt.*;
import java.awt.event.*;
 
class MenuFrame3 extends    Frame
                 implements ActionListener,
                            ItemListener
{
    CheckboxMenuItem cbmi;
 
    public MenuFrame3()
    {
       MenuShortcut ms=new MenuShortcut(KeyEvent.VK_A, false); 
                  cbmi=new CheckboxMenuItem("Chiaccherone", true); 
 
       MenuBar   mb=new MenuBar(); 
       Menu      m1=new Menu("ALFA"),            m2=new Menu("BETA"),          m3=new Menu("GAMMA"),
                                                m23=new Menu("BETA-C");
       MenuItem m11=new MenuItem("ALFA-A", ms), m21=new MenuItem("BETA-A"),   m31=new MenuItem("GAMMA-A"),
                m12=new MenuItem("ALFA-B"),     m22=new MenuItem("BETA-B"),
                m13=new MenuItem("ALFA-C"), 
                m14=new MenuItem("USCITA"),     m24=new MenuItem("BETA-D"),
                                               m231=new MenuItem("BETA-C-A"),
                                               m232=new MenuItem("BETA-C-B"),
                                               m233=new MenuItem("BETA-C-C"); 
                m11.addActionListener(this);    m21.addActionListener(this);  m31.addActionListener(this);
                m12.addActionListener(this);    m22.addActionListener(this); cbmi.addItemListener(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);                  m3.add(cbmi);
                 m1.add(m13);                    m2.add(m23);
                 m1.add("-");                    m2.add(m24);
                 m1.add(m14);                   m23.add(m231);
                                                m23.add(m232);
                                                m23.add(m233); 
       this.setMenuBar(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!";
 
       if(cbmi.getState())
          System.out.println(msg); 
    }
 
    public void itemStateChanged(ItemEvent ie)
    {
       String msg="";              // ie.getItem()    --> Object
       switch(ie.getStateChange()) // cbmi.getState() --> boolean
       {
          case ItemEvent.SELECTED  : msg="Hai SELEZIONATO..." ; break;
          case ItemEvent.DESELECTED: msg="Hai DESELEZIONATO..."; break;
       }
       System.out.println(msg); 
    }
 
    public static void main(String args[])
    {
       MenuFrame3 mf=new MenuFrame3();
    }
}

Osserva

  1. MenuShortcut, MenuItem
  2. CheckboxMenuItem, addItemListener(), itemStateChanged(), getItem(), getStateChange()