ciao
ho definito un menu ed un submenu , vorrei associare alle voci di submenu
un ascoltatore il quale faccia partire una istanza di una classe in funzione
della voce di submenu scelta ;
il codice è quello sotto , però ricevo una serie di errori , il primo dei quali à :

source: javax.swing.JMenuItem(,1,3,125X21,invalid, alignmentX=0.0,alignmentY=0.0
ecc, ecc. . . .


per favore sapete dirmi dove sbaglio ?

codice:
import javax.swing.*;
import java.lang.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;

public class JMenu1 extends JFrame
{
    class MenuItemListener implements ActionListener {
          public void actionPerformed(ActionEvent event) {
             JMenuItem source = (JMenuItem)event.getSource();
             String message = null;
             System.out.println("source: " + source );
          }
    }  
   
    JMenuBar menuBar;
    JMenu menu, submenucli;
    JMenuItem menuItem;
   
    MenuItemListener itemListener = new MenuItemListener();

    //Constructor for objects of class JMenu1
    public JMenu1()
    {

     //Create the menu bar.
     menuBar = new JMenuBar();

     //a submenucli
     menu.addSeparator();
     submenucli = new JMenu("gestione clienti");
     submenucli.setMnemonic(KeyEvent.VK_S);

     menuItem = new JMenuItem("inserimento");
     menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, 
                                       ActionEvent.ALT_MASK));
     submenucli.add(menuItem);
     menuItem.addActionListener(itemListener);

     menuItem = new JMenuItem("cancellazione");
     menuItem.addActionListener(itemListener);
     submenucli.add(menuItem);
     menuItem = new JMenuItem("modifica");
     menuItem.addActionListener(itemListener);
     submenucli.add(menuItem);
     menuItem = new JMenuItem("lista");
     menuItem.addActionListener(itemListener);
     submenucli.add(menuItem);

     menu.add(submenucli);

     menuBar.add(menu);
           
     JPanel panel = new JPanel();      
     panel.add(menuBar);
     getContentPane().add(panel);
    
     setTitle("prova menu ");
     setSize(400, 300);
     setLocationRelativeTo(null);
     setDefaultCloseOperation(EXIT_ON_CLOSE);
     setVisible(true);

    }

         public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JMenu1 ex = new JMenu1();
                //ex.setVisible(true);
            }
        });