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 }

AWT07-菜单组件的更多相关文章

  1. Android入门(七):Spinner下拉式菜单组件

    对于手机和平板电脑的应用程序来说,打字是非常不方便的操作方式,比较好的方式就是列出一组选项让用户挑选,这样就可以避免打字的麻烦.使用Spinner下拉菜单组件需要完成以下几个步骤: 1.建立选项列表, ...

  2. 菜单组件——axure线框图部件库介绍

    软件类的教程,我写不出长篇大论,这里面的都是基础的操作,希望初学者,根据一个功能演示,可以自己测试其他功能菜单的效果! Axure自带的菜单组件,我几乎没有用到过,做菜单导航,我第一时间想到的还是矩形 ...

  3. JS列表的下拉菜单组件(仿美化控件select)

    JS列表的下拉菜单组件(仿美化控件select) 2014-01-23 23:51 by 龙恩0707, 1101 阅读, 6 评论, 收藏, 编辑 今天是农历23 也是小年,在这祝福大家新年快乐!今 ...

  4. Delphi 之 菜单组件(TMainMenu)

    菜单组件TMainMenu 创建菜单双击TmenuMain,单击Caption就可以添加一个菜单项 菜单中添加分割线只需加“-”就可以添加一个分割线 级联菜单的设计 单击鼠标右键弹出菜单中选择Crea ...

  5. 【Java】详解菜单组件

    在这篇文章中,笔者会介绍Java图形界面编程中菜单组件的用法.关于菜单组件,因为java存在AWT编程和Swing编程,所以菜单组件也存在AWT菜单和Swing菜单.因为Swing组件使用的比较多,所 ...

  6. react 侧栏二级菜单组件

    侧边栏菜单组件 component 下新建menu文件,menu下建index.jsx和subitem.jsx index.jsx import React, { Component } from ' ...

  7. 第二百零八节,jQuery EasyUI,SplitButton(分割按钮菜单)组件

    jQuery EasyUI,SplitButton(分割按钮)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 SplitButton(分割按钮)组件的使用 ...

  8. 第二百零六节,jQuery EasyUI,Menu(菜单)组件

    jQuery EasyUI,Menu(菜单)组件 学习要点: 1.加载方式 2.菜单项属性 3.菜单属性 4.菜单事件 5.菜单方法 本节课重点了解 EasyUI 中 Menu(菜单)组件的使用方法, ...

  9. 详解Bootstrap下拉菜单组件

    bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,他对应的文件: less 对应的源码文件为:dropdowns.less sass对应的源码文件为:_dropdowns.scs ...

  10. vue2.X 自定义 侧滑菜单 组件

    1.vue2.0 封装 侧滑菜单组件 Sidebar.vue <!-- 侧滑菜单 组件 --> <template> <div> <transition na ...

随机推荐

  1. linux centos 6.x 装机后基本优化

    1.关闭SELinux /etc/selinux/config配置文件内替换 se -i 's/SELINUX=enforcing/SELINUX=disabled/g'需要重启grep SELINU ...

  2. CVE-2017-11882利用

    CVE-2017-11882是微软公布的远程执行漏洞,通杀所有office版本及Windows操作系统 工具使用 本文使用的EXP来源于unamer/CVE-2017-11882,然后结合MSF进行渗 ...

  3. Codeforces375D Tree and Queries

    dsu on tree 题目链接 点我跳转 题目大意 给定一棵 \(n\) 个节点的树,根节点为 \(1\).每个节点上有一个颜色 \(c_i\) \(m\) 次询问. 每次询问给出 \(u\) \( ...

  4. 都0202了,还在问Vegas和Pr哪个好?

    自媒体时代,蕴藏着很多机会.许多平凡的人,通过制作视频,收获了掌声.赢得了粉丝,甚至改变了自己的命运. 图1:B站百大UP主颁奖现场   但这条路真的一路畅通吗?其实不然,他们成功的背后,必定有多方面 ...

  5. appium快速入门

    appium快速入门 演示官方demo 第一步:启动安卓模拟器 步骤2:启动Appium桌面 step3:准备自动化脚本与待测APK step4:运行测试代码 分析演示 分析Appium的加载流程 使 ...

  6. java类private/this的使用

    package 类的练习; public class Person { private String name; private int age; private String sex; privat ...

  7. CentOS初级扫盲

    发行版介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口Portable Operating System Interface ,缩写为 POSIX ...

  8. golang 自学系列(三)—— if,for,channel

    golang 自学系列(三)-- if,for,channel 一般情况下,if 语句跟大多数语言的 if 判断语句一样,根据一个 boolean 表达式结果来执行两个分支逻辑. 但凡总是有例外,go ...

  9. Alpha冲刺-第八次冲刺笔记

    Alpha冲刺-冲刺笔记 这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 这个作业要求在哪里 https://edu.cnblogs. ...

  10. Beta冲刺随笔——测试

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...