Java AWT的菜单实例演示教程。
- Java code复制代码
-
/** * @(#)TestLayout.java * * * @author 叶云策(intrl) * @version 1.00 2009/5/17 */ import java.awt.*; import java.awt.event.*; public class SimpleMenu { private Frame f=new Frame("测试"); 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菜单项,指定使用Ctrl+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("格式"); //创建commentItem菜单项,指定使用Ctrl+Shift+/快捷键 MenuItem commentItem=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_SLASH,true)); MenuItem cancelItem=new MenuItem("取消注释"); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CheckboxMenuItem autoWrap1=new CheckboxMenuItem("自动换行"); MenuItem copyItem1=new MenuItem("复制"); MenuItem pasteItem1=new MenuItem("粘贴"); Menu format1=new Menu("格式"); //创建commentItem1菜单项 MenuItem commentItem1=new MenuItem("注释"); MenuItem cancelItem1=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.add(autoWrap); //使用addSeparator方法来添加菜单分隔线 edit.addSeparator(); edit.add(copyItem); edit.add(pasteItem); //为format菜单添加菜单项 format.add(commentItem); format.add(cancelItem); //------------------------------------------------------------ //为format1菜单添加菜单项 format1.add(commentItem1); format1.add(cancelItem1); //------------------------------------------------------------ //使用添加new MenuItem("-")的方式添加菜单分隔线 edit.add(new MenuItem("-")); //将format菜单组合到edit菜单中,从而形成二级菜单 edit.add(format); //============================================================ //为pop菜单添加菜单项 pop.add(autoWrap1); //使用addSeparator方法来添加菜单分隔线 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窗口设置菜单条 f.setMenuBar(mb); //以匿名内部类的形式来创建事件******对象 f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { ta.append("用户试图关闭窗口!\n"); System.exit(0); } }); f.add(ta); f.pack(); f.setVisible(true); } public static void main(String[] args) { new SimpleMenu().init(); } }
运行结果:
Tags:AWT菜单
作者:佚名