例如:
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);
}
如果以上面的方式创建菜单项,如何给菜单项添加事件处理?
------解决方案--------------------------------------------------------
应该使用Action类,既可以添加到菜单有可以添加到工具条,还可以用来新建JButton。可以当作ActionListener使用。
------解决方案--------------------------------------------------------
我程序里面的一段你应该能看懂:
MenuItem exitItem = new MenuItem(" 退出程序 ");
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(null, "确定退出系统") == 0) {
System.exit(0);
}
}
------解决方案--------------------------------------------------------
- Java code
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; } }