AWT07-菜单组件

1.菜单组件

方法名 说明
MenuBar 菜单条,菜单的容器
Menu 菜单组件,菜单项的容器,也是MenuItem的子类,所以可以作为菜单项使用
PopupMenu 上下文菜单组件(右键菜单组件)
MenuItem 菜单项组件
CheckboxMenuItem 复选框菜单项组件

tips:如果要给某个组件添加快捷键,只需在创建菜单项时设置即可,如new MenuItem("菜单项名字",new MenuShortCut(KeyEvent.vk_Q,true));

  MenuShortCut是默认为Ctrl+键,后面的true是加不加Shift。

2.体系

MenuComponent

  -MenuItem

    CheckboxMenuItem

    Menu

      -(接口)MenuContainer

      -PopupMenu

  -MenuBar

    (接口)MenuContainer

3.菜单组件的使用

    

 1 import java.awt.*;
 2 import java.awt.event.*;
 3 
 4 public class MenuTestDemo {
 5     Frame frame = new Frame("菜单测试");
 6 
 7     MenuBar mb = new MenuBar();
 8     Menu fileMenu = new Menu("文件");
 9     Menu editMenu = new Menu("编辑");
10     Menu formatMenu = new Menu("格式");
11 
12     MenuItem auto = new MenuItem("自动换行");
13     MenuItem copy = new MenuItem("复制",new MenuShortcut(KeyEvent.VK_S));
14     MenuItem paste = new MenuItem("粘贴",new MenuShortcut(KeyEvent.VK_V));
15 
16     MenuItem comment = new MenuItem("注释");
17     MenuItem uncomment = new MenuItem("取消注释");
18 
19     PopupMenu rightMouseButton = new PopupMenu();
20     MenuItem close = new MenuItem("关闭",new MenuShortcut(KeyEvent.VK_W));
21 
22 
23     TextArea ta = new TextArea(6,40);
24     public void init(){
25 
26         rightMouseButton.add(close);
27         ta.add(rightMouseButton);
28 
29         ta.addMouseListener(new MouseAdapter() {
30             @Override
31             public void mouseReleased(MouseEvent e) {
32                 boolean flag = e.isPopupTrigger();
33 
34                 if (flag){
35                     rightMouseButton.show(ta,e.getX(),e.getY());
36                 }
37             }
38         });
39 
40         close.addActionListener(new ActionListener() {
41             @Override
42             public void actionPerformed(ActionEvent e) {
43                 System.exit(0);
44             }
45         });
46 
47         comment.addActionListener(new ActionListener() {
48             @Override
49             public void actionPerformed(ActionEvent e) {
50                 ta.append("您点击了"+e.getActionCommand()+"\n");
51             }
52         });
53 
54         copy.addActionListener(new ActionListener() {
55             @Override
56             public void actionPerformed(ActionEvent e) {
57                 ta.append("您点击了"+e.getActionCommand()+"\n");
58             }
59         });
60 
61         formatMenu.add(comment);
62         formatMenu.add(uncomment);
63 
64         editMenu.add(auto);
65         editMenu.add(copy);
66         editMenu.add(paste);
67         editMenu.add(formatMenu);
68 
69         mb.add(fileMenu);
70         mb.add(editMenu);
71 
72         frame.setMenuBar(mb);
73         frame.add(ta);
74 
75         frame.addWindowListener(new WindowAdapter() {
76             @Override
77             public void windowClosing(WindowEvent e) {
78                 System.exit(0);
79             }
80         });
81         frame.setLocation(500,250);
82         frame.pack();
83         frame.setVisible(true);
84     }
85 
86     public static void main(String[] args) {
87         new MenuTestDemo().init();
88     }
89 }

 

posted @ 2020-12-08 15:51  zhiyDevQAQ  阅读(179)  评论(0)    收藏  举报