例如:
JMenuItem item1;
JMenuItem item2;
JMenuItem item3;
JMenuItem item4;
JMenuItem item5;
String[] str1 = { "关于系统","退出系统" };
String[] str2 = { "增加用户", "删除用户", "修改用户", "查看系统用户" };
String[] str3 = { "进入管理系统", "生成报表"};
String[] str4 = { "进入购物系统"};
String[] str5 = { "游客注册","用户指南"};
for (int i = 0; i < str1.length; i++) {
item1 = new JMenuItem(str1[i]);
menu1.add(item1);
}
for (int i = 0; i < str2.length; i++) {
item2 = new JMenuItem(str2[i]);
menu2.add(item2);
}
for (int i = 0; i < str3.length; i++) {
item3 = new JMenuItem(str3[i]);
menu3.add(item3);
}
for (int i = 0; i < str4.length; i++) {
item4 = new JMenuItem(str4[i]);
menu4.add(item4);
}
for (int i = 0; i < str5.length; i++) {
item5 = new JMenuItem(str5[i]);
menu5.add(item5);
}
如果以上面的方式创建菜单项,如何给菜单项添加事件处理?

解决方案 »

  1.   

    应该使用Action类,既可以添加到菜单有可以添加到工具条,还可以用来新建JButton。可以当作ActionListener使用。
      

  2.   

    我程序里面的一段你应该能看懂:
       MenuItem exitItem = new MenuItem("    退出程序        ");
       exitItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
         if (JOptionPane.showConfirmDialog(null, "确定退出系统") == 0) {
          System.exit(0);
         }
        }
      

  3.   


    public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if ("退出".equals(cmd)) {
    if (wasSaved == false) {
    int op = JOptionPane.showConfirmDialog(jf, "文件没保存是否退出?",
    "确认退出", JOptionPane.YES_NO_CANCEL_OPTION);
    if (op != JOptionPane.YES_OPTION) {
    return;
    } } System.exit(0);
    } if ("打开".equals(cmd)) {
    FileDialog fd = new FileDialog(jf, "打开文件");
    fd.setVisible(true);
    filePath = fd.getDirectory() + fd.getFile(); BufferedReader br = null; try {
    br = new BufferedReader(new InputStreamReader(
    new FileInputStream(filePath), "utf-8"));

    String str;
    while((str=br.readLine())!=null){

    jta.append(str+"\n");

    }

    } catch (Exception ex) {
    ex.printStackTrace();
    } finally {
    if(br!=null){
    try {
    br.close();
    } catch (IOException e1) {
    e1.printStackTrace();
    }
    }
    }
    wasSaved=true;
    }
    if ("保存".equals(cmd)) {
    if(filePath==null){
    FileDialog fd=new FileDialog(jf);
    fd.setVisible(true);
    filePath=fd.getDirectory()+fd.getFile();
    }

    save();
    wasSaved=true;


    }
    if ("另存为".equals(cmd)) {
    FileDialog fd=new FileDialog(jf);
    fd.setVisible(true);
    filePath=fd.getDirectory()+fd.getFile();
    save();
    wasSaved=true;
    }
    }