import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ComplexMenu {
private Frame f=new Frame("使用Menu");
private MenuBar mb =new MenuBar();
PopupMenu pop=new PopupMenu();
Menu file=new Menu("文件");
Menu edit=new Menu("编辑");
MenuItem newItem=new MenuItem("新建");
MenuItem saveItem=new MenuItem("保存");
//创建exitItem菜单项,指定使用Ctr+x快捷键
MenuItem exitItem=new MenuItem("退出",new MenuShortcut(KeyEvent.VK_X));
CheckboxMenuItem autoWrap=new CheckboxMenuItem("自动换行");
MenuItem copyItem=new MenuItem("复制");
MenuItem pasteItem=new MenuItem("粘贴");
Menu format=new Menu("格式");
MenuItem commentItem=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_SLASH,true));
MenuItem cancleItem=new MenuItem("取消注释");

CheckboxMenuItem autoWrap1=new CheckboxMenuItem("自动换行");
MenuItem copyItem1=new MenuItem("复制");
MenuItem pasteItem1=new MenuItem("粘贴");
Menu format1=new Menu("格式");
//创建commentItem菜单项
MenuItem commentItem1=new MenuItem("注释");
MenuItem cancleItem1=new MenuItem("取消注释");
//创建文本域
private TextArea ta=new TextArea(6,40);
public void init(){
//以匿名内部类的形式创建菜单监听器
ActionListener menuListener=new ActionListener(){
public void actionPerformed(ActionEvent e){
String cmd=e.getActionCommand();
ta.append("单击"+cmd+"菜单"+"\n");
if(cmd.equals("退出")){
System.exit(0);
}
}
};
commentItem.addActionListener(menuListener);
commentItem1.addActionListener(menuListener);
    exitItem.addActionListener(menuListener);
//为file菜单添加菜单项
    file.add(newItem);
    file.add(saveItem);     file.add(exitItem); 
    //为edit菜单添加菜单项
    edit.addSeparator();
    edit.add(copyItem);
    edit.add(pasteItem);
    //为format菜单添加菜单项
    format.add(commentItem);
    format.add(cancleItem);
    //为format1菜单添加菜单项
    format1.add(commentItem1);
    format1.add(cancleItem1);
    //使用添加new MenuItem("-")的方式添加菜单分隔线
    edit.add(new MenuItem("-"));
    edit.add(format);
    pop.add(autoWrap1);
    pop.addSeparator();
    pop.add(copyItem1);
    pop.add(pasteItem1);
    pop.add(new MenuItem("-"));
    pop.add(format1);
    ta.add(pop);
    ta.addMouseListener(new MouseAdapter() {
     public void mouseReleased(MouseEvent e){
     if(e.isPopupTrigger()){
     pop.show(ta, e.getX(), e.getY());
     }
     }
});
//将file、 edit添加到mb菜单中
    mb.add(file);
    mb.add(edit);
    f.setMenuBar(mb);    
    f.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent e){
     ta.append("用户试图关闭窗口!\n");
     System.exit(0);
     }
    });
    f.add(ta);
    f.setBounds(0,0, 1000, 500);
f.setVisible(true);
}
}

解决方案 »

  1.   

    这样写main方法,给你完整的代码import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;public class ComplexMenu {
    private Frame f = new Frame("使用Menu");
    private MenuBar mb = new MenuBar();
    PopupMenu pop = new PopupMenu();
    Menu file = new Menu("文件");
    Menu edit = new Menu("编辑");
    MenuItem newItem = new MenuItem("新建");
    MenuItem saveItem = new MenuItem("保存");
    // 创建exitItem菜单项,指定使用Ctr+x快捷键
    MenuItem exitItem = new MenuItem("退出", new MenuShortcut(KeyEvent.VK_X));
    CheckboxMenuItem autoWrap = new CheckboxMenuItem("自动换行");
    MenuItem copyItem = new MenuItem("复制");
    MenuItem pasteItem = new MenuItem("粘贴");
    Menu format = new Menu("格式");
    MenuItem commentItem = new MenuItem("注释", new MenuShortcut(
    KeyEvent.VK_SLASH, true));
    MenuItem cancleItem = new MenuItem("取消注释"); CheckboxMenuItem autoWrap1 = new CheckboxMenuItem("自动换行");
    MenuItem copyItem1 = new MenuItem("复制");
    MenuItem pasteItem1 = new MenuItem("粘贴");
    Menu format1 = new Menu("格式");
    // 创建commentItem菜单项
    MenuItem commentItem1 = new MenuItem("注释");
    MenuItem cancleItem1 = new MenuItem("取消注释");
    // 创建文本域
    private TextArea ta = new TextArea(6, 40); public void init() {
    // 以匿名内部类的形式创建菜单监听器
    ActionListener menuListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    ta.append("单击" + cmd + "菜单" + "\n"); if (cmd.equals("退出")) {
    System.exit(0);
    }
    }
    };
    commentItem.addActionListener(menuListener);
    commentItem1.addActionListener(menuListener);
    exitItem.addActionListener(menuListener);
    // 为file菜单添加菜单项
    file.add(newItem);
    file.add(saveItem); file.add(exitItem);
    // 为edit菜单添加菜单项
    edit.addSeparator();
    edit.add(copyItem);
    edit.add(pasteItem);
    // 为format菜单添加菜单项
    format.add(commentItem);
    format.add(cancleItem);
    // 为format1菜单添加菜单项
    format1.add(commentItem1);
    format1.add(cancleItem1);
    // 使用添加new MenuItem("-")的方式添加菜单分隔线
    edit.add(new MenuItem("-"));
    edit.add(format);
    pop.add(autoWrap1);
    pop.addSeparator();
    pop.add(copyItem1);
    pop.add(pasteItem1);
    pop.add(new MenuItem("-"));
    pop.add(format1);
    ta.add(pop);
    ta.addMouseListener(new MouseAdapter() {
    public void mouseReleased(MouseEvent e) {
    if (e.isPopupTrigger()) {
    pop.show(ta, e.getX(), e.getY());
    }
    }
    });
    // 将file、 edit添加到mb菜单中
    mb.add(file);
    mb.add(edit);
    f.setMenuBar(mb);
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    ta.append("用户试图关闭窗口!\n");
    System.exit(0);
    }
    });
    f.add(ta);
    f.setBounds(0, 0, 1000, 500);
    f.setVisible(true);
    }

    public static void main(String[] args) {
    ComplexMenu cm = new ComplexMenu();
    cm.init();
    }
    }
      

  2.   

    感谢啊!!!要得就是最后一句话。忘了仔细看看init()方法了。失误了。再次感谢啊
      

  3.   

    public static void main(String[] args){
    ComplexMenu c = new ComplexMenu();
    c.init();
    }
      

  4.   

    ComplexMenu  complexMenu  = new ComplexMenu ();
     complexMenu.init();
      

  5.   


    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    public class ComplexMenu {
    public ComplexMenu() {
    Frame f=new Frame("使用Menu");
    MenuBar mb =new MenuBar();
    final PopupMenu pop=new PopupMenu();
    Menu file=new Menu("文件");
    Menu edit=new Menu("编辑");
    MenuItem newItem=new MenuItem("新建");
    MenuItem saveItem=new MenuItem("保存");
    //创建exitItem菜单项,指定使用Ctr+x快捷键
    MenuItem exitItem=new MenuItem("退出",new MenuShortcut(KeyEvent.VK_X)); 
    CheckboxMenuItem autoWrap=new CheckboxMenuItem("自动换行");
    MenuItem copyItem=new MenuItem("复制");
    MenuItem pasteItem=new MenuItem("粘贴");
    Menu format=new Menu("格式");
    MenuItem commentItem=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_SLASH,true));
    MenuItem cancleItem=new MenuItem("取消注释");CheckboxMenuItem autoWrap1=new CheckboxMenuItem("自动换行");
    MenuItem copyItem1=new MenuItem("复制");
    MenuItem pasteItem1=new MenuItem("粘贴");
    Menu format1=new Menu("格式");
    //创建commentItem菜单项
    MenuItem commentItem1=new MenuItem("注释");
    MenuItem cancleItem1=new MenuItem("取消注释");
    //创建文本域
    final TextArea ta=new TextArea(6,40);
    //以匿名内部类的形式创建菜单监听器
    ActionListener menuListener=new ActionListener(){
    public void actionPerformed(ActionEvent e){
    String cmd=e.getActionCommand();
    ta.append("单击"+cmd+"菜单"+"\n");
    if(cmd.equals("退出")){
    System.exit(0);
    }

    };
    commentItem.addActionListener(menuListener);
    commentItem1.addActionListener(menuListener);
    exitItem.addActionListener(menuListener);
    //为file菜单添加菜单项
    file.add(newItem);
    file.add(saveItem);file.add(exitItem);  
    //为edit菜单添加菜单项
    edit.addSeparator();
    edit.add(copyItem);
    edit.add(pasteItem);
    //为format菜单添加菜单项
    format.add(commentItem);
    format.add(cancleItem);
    //为format1菜单添加菜单项
    format1.add(commentItem1);
    format1.add(cancleItem1);
    //使用添加new MenuItem("-")的方式添加菜单分隔线
    edit.add(new MenuItem("-"));
    edit.add(format);
    pop.add(autoWrap1);
    pop.addSeparator();
    pop.add(copyItem1);
    pop.add(pasteItem1);
    pop.add(new MenuItem("-"));
    pop.add(format1);
    ta.add(pop);
    ta.addMouseListener(new MouseAdapter() {
    public void mouseReleased(MouseEvent e){
    if(e.isPopupTrigger()){
    pop.show(ta, e.getX(), e.getY());
    }
    }
    });
    //将file、 edit添加到mb菜单中
    mb.add(file);
    mb.add(edit);
    f.setMenuBar(mb);   
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e){
    ta.append("用户试图关闭窗口!\n");
    System.exit(0);
    }
    });
    f.add(ta); 
    f.setBounds(0,0, 1000, 500);
    f.setVisible(true);
    }
    public static void main(String[] args) {
        new ComplexMenu();
    }
    }