6 菜单组件
前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示即可。在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定的功能,在AWT中,菜单相关组件的使用和之前学习的组件是一模一样的,只需要把菜单条,菜单,菜单项结合到一起,按照一定布局,放入容器即可。
下表中给出常见的菜单相关组件:
菜单组件名称 | 功能 |
MenuBar | 菜单条,菜单的容器 |
Menu | 菜单组件,菜单项的容器, 它也是MenuItem的子类,所以可作为菜单项用 |
PopupMenu | 上下文菜单组件(右键菜单组件) |
MenuItem | 菜单项组件 |
CheckboxMenuItem | 复选框菜单项组件 |
下图为常见菜单相关组件继承体系图:
菜单相关组件的使用 :
1.准备菜单项组件,这些组件可以是MenuItem及其子类对象;
2.准备菜单组件Menu或者PopupMenu(右键弹出子菜单),把第一步中准备好的菜单组件添加进来;
3.准备菜单条组件MenuBar,把第二步中准备好的菜单组件Menu添加进来;
4.把第三步中准备好的菜单条组件添加到窗口对象中显示。
小技巧:
1.如果要在某个菜单的菜单项之间添加分割线,只需要调用Menu的add(new MenuItem("-"))即可。
2.如果要给某个菜单项关联快捷键功能,那么只需要在创建菜单项对象时设置即可,例如给菜单项关联ctrl+shift+Q快捷键,只需要执行语句:
new MenuItem("菜单项名字",new MenuShortcut(KeyEvent.VK_Q,true);
案例1:
使用AWT中常用菜单组件,完成下图效果,其中编辑菜单中包含 自动换行,复制,粘贴,格式 等菜单项。
代码如下:
-
public
class
SimpleMenu {
-
//创建窗口
-
private
Frame
frame
=
new
Frame(
"这里测试菜单相关组件");
-
-
//创建菜单条
-
MenuBar
menuBar
=
new
MenuBar();
-
-
//创建菜单组件
-
Menu
fileMenu
=
new
Menu(
"文件");
-
Menu
editMenu
=
new
Menu(
"编辑");
-
-
Menu
formatMenu
=
new
Menu(
"格式");
-
-
//菜单项组件
-
MenuItem
auto
=
new
MenuItem(
"自动换行");
-
MenuItem
copy
=
new
MenuItem(
"复制");
-
MenuItem
paste
=
new
MenuItem(
"粘贴");
-
-
MenuItem
comment
=
new
MenuItem(
"注释",