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 }

浙公网安备 33010602011771号