构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中 展示就可以了。在实际开发中,除了主页面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定的功能,在AWT中,菜单相关组件的使用和之前学习的组件是一模一样的,只需要把菜单条,菜单,菜单项组合到一起,按照一定的布局,放入到容器中即可。
菜单组件名称 | 功能 |
MenuBar | 菜单条,菜单的容器 |
Menu | 菜单组件,菜单项的容器。它也是Menultem的子类,多以可作为菜单项使用 |
PopupMenu | 上下文菜单组件(右键菜单组件) |
Menultem | 菜单项组件 |
CheckboxMenultem | 复选框菜单项组件 |
菜单相关组件使用:
1.准备菜单项组件,这些组件可以是Menultem及其子类对象
2.准备菜单组件Menu或者PopupMenu(右击弹出子菜单),把第一步中准备好的菜单组件添加进来;
3.准备菜单条组件MenuBar,把第二步中准备好的菜单组件Menu添加进来;
4.把第三步中准备好的菜单条组件添加到窗口对象中显示。
小技巧:
1.如果要在某个菜单的菜单项之间添加分割线,那么只需要调用Menu的add(new Mneultem("-"))即可。
2.如果要给某个菜单项关联快捷键功能,那么只需要在创建菜单项对象时设置即可,例如给菜单项关联ctrl+shift+Q快捷键,只需要:new Menultem("菜单项名字",new MenuShortcut(KeyEvent.VK_Q,true));
package com.aynu.layout;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class SimpleDemo {
//创建窗口
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("注释",new MenuShortcut(KeyEvent.VK_Q,true));
MenuItem cancelComment = new MenuItem("取消注释");
TextArea ta = new TextArea(6,40);
public void inti(){
//组装视图
comment.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ta.append("您点击了菜单项:"+e.getActionCommand());
}
});
//组装格式菜单
formatMenu.add(comment);
formatMenu.add(cancelComment);
//组装编辑菜单
editMenu.add(auto);
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(new MenuItem("-"));
editMenu.add(formatMenu);
//组装菜单条
menuBar.add(fileMenu);
menuBar.add(editMenu);
//把菜单条放入到Frame中
frame.setMenuBar(menuBar);
frame.add(ta);
//设置frame最佳大小并可见
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new SimpleDemo().inti();
}
}