菜单是图形用户界面的重要组成部分,它通常有两种使用方式:窗口菜单和快捷菜单。下面介绍窗口菜单的创建。窗口菜单是由菜单条(MenmBar)、 菜单(Memu)、菜单项(Menltem)和复选菜单项CeckoMonultem等组成的。菜单放在菜单条里,菜单项放在菜单里。(1)菜单条(MenBar)。
Java.awt包中的MenuBar类是负责创建菜单条的,即MenuBar类的一个实例就是一个菜单条。菜单条只能被添加到作为Frame对象中,整个菜单树的根基。Frame类有一个将菜单条放置到窗口中的方法: setMenuBar (MenuBar bar) 该方法将菜单条添加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条。
例如:MenuBar MenuBar1 = new MenuBar() //创建菜单条 setMenuBar (MenuBar1) //添加创建菜单条到Frame中(2)菜单(Menu)。
Menu类负责创建菜单,即Menu类的一个实例就是一个菜单。 无法直接将菜单添加到容器的某位置,也无法使用布局管理器对其加以控制。菜单只能被添加到“菜单容器”菜单条(MenuBar) 中。 例如:Menu Menu1=new Menu("文件") //创建菜单 menubar . add (Menu1) //添加到菜单条中(3)菜单项(Menultem)。
MenuItem类是负责创建菜单项的,即MenuItem类的一个实例就是一个菜单项。菜单项必须添加到菜单中。MenuItem是整个“菜单树”中的“叶子节点”。Menultem对象可以添加ActionListener,使其能完成相应的操作,在后面的章节中会学习相关知识。 例如:MenuItem item1=new MenuItem ("新建") //创建菜单项 menul . add (item1) //添加到菜单中 代码如下:
import java.awt.*; import java.awt.event.*; public class MenuDemo { Frame fr = new Frame("MenuDemo"); MenuBar mb = new MenuBar();//以下生成菜单组件对象 Menu m1 = new Menu("文件"); MenuItem open = new MenuItem("打开"); MenuItem close = new MenuItem("关闭"); MenuItem exit = new MenuItem("退出");
MenuDemo() { fr.setSize(350,200); m1.add(open); //将菜单项加入到菜单中 m1.add(close); m1.addSeparator(); //将分隔条加入到菜单中 m1.add(exit); mb.add(m1); //将菜单加入到菜单条中 fr.setMenuBar(mb); //显示菜单条 fr.setVisible(true); } public static void main(String args[]) { new MenuDemo(); } } 运行结果:
说明: (1)当希望在菜单项之间添加一条横向的分隔线,把菜单项分为几组时,可以添加分隔线。可以使用下面的方法:menu1.addSeparator ()或者menul .add("-")
(2)复选菜单项与复选框一样有“选中”和“未选中”两种状态,处于“选中”状态的检测菜单项前面有一个小对号。CheckboxMenultem Checkbox=new CheckboxMenultem(" ") ;//创建检测菜单项
menul. add (Checkbox) ;//添加到菜单中