Java:菜单(Menu)
菜单是图形用户界面的重要组成部分,它通常有两种使用方式:窗口菜单和快捷菜单。下面介绍窗口菜单的创建。
窗口菜单是由菜单条(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) ;//添加到菜单中