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 }
AWT07-菜单组件的更多相关文章
- Android入门(七):Spinner下拉式菜单组件
对于手机和平板电脑的应用程序来说,打字是非常不方便的操作方式,比较好的方式就是列出一组选项让用户挑选,这样就可以避免打字的麻烦.使用Spinner下拉菜单组件需要完成以下几个步骤: 1.建立选项列表, ...
- 菜单组件——axure线框图部件库介绍
软件类的教程,我写不出长篇大论,这里面的都是基础的操作,希望初学者,根据一个功能演示,可以自己测试其他功能菜单的效果! Axure自带的菜单组件,我几乎没有用到过,做菜单导航,我第一时间想到的还是矩形 ...
- JS列表的下拉菜单组件(仿美化控件select)
JS列表的下拉菜单组件(仿美化控件select) 2014-01-23 23:51 by 龙恩0707, 1101 阅读, 6 评论, 收藏, 编辑 今天是农历23 也是小年,在这祝福大家新年快乐!今 ...
- Delphi 之 菜单组件(TMainMenu)
菜单组件TMainMenu 创建菜单双击TmenuMain,单击Caption就可以添加一个菜单项 菜单中添加分割线只需加“-”就可以添加一个分割线 级联菜单的设计 单击鼠标右键弹出菜单中选择Crea ...
- 【Java】详解菜单组件
在这篇文章中,笔者会介绍Java图形界面编程中菜单组件的用法.关于菜单组件,因为java存在AWT编程和Swing编程,所以菜单组件也存在AWT菜单和Swing菜单.因为Swing组件使用的比较多,所 ...
- react 侧栏二级菜单组件
侧边栏菜单组件 component 下新建menu文件,menu下建index.jsx和subitem.jsx index.jsx import React, { Component } from ' ...
- 第二百零八节,jQuery EasyUI,SplitButton(分割按钮菜单)组件
jQuery EasyUI,SplitButton(分割按钮)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 SplitButton(分割按钮)组件的使用 ...
- 第二百零六节,jQuery EasyUI,Menu(菜单)组件
jQuery EasyUI,Menu(菜单)组件 学习要点: 1.加载方式 2.菜单项属性 3.菜单属性 4.菜单事件 5.菜单方法 本节课重点了解 EasyUI 中 Menu(菜单)组件的使用方法, ...
- 详解Bootstrap下拉菜单组件
bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,他对应的文件: less 对应的源码文件为:dropdowns.less sass对应的源码文件为:_dropdowns.scs ...
- vue2.X 自定义 侧滑菜单 组件
1.vue2.0 封装 侧滑菜单组件 Sidebar.vue <!-- 侧滑菜单 组件 --> <template> <div> <transition na ...
随机推荐
- centos 6 系统下同步本地时间
1.date显示系统时间 [root@oldboy ~]# dateTue Mar 31 22:45:55 CST 2020 #CST是指是指某中标准时间 非东八区时间 更改时间的三种方法 1.c ...
- Android开发-AlertDialog,Progress,ProgressDialog,自定义layout
AlertDialog 默认样式 单选样式 多选样式 自定义样式 效果图 AlertDialog效果图 class OnClick implements View.OnClickListener ...
- .NET 开源工作流: Slickflow流程引擎高级开发(八) -- 审批网关(ApprovalOrSplit)模式的应用
前言:业务流程流转过程中,审批类型的节点是比较常见的,在审批操作中,常见的操作就是就是主管人员对待办事项进行同意或者拒绝.所以网关处理节点,就是需要对这两种审批结果进行预备处理,审批网关是在或分支(O ...
- 实验吧[WEB]——what a fuck!这是什么鬼东西?
解题链接:http://ctf5.shiyanbar.com/DUTCTF/1.html 原题链接:http://www.shiyanbar.com/ctf/56 解题必看: 的jother编码定义: ...
- linux的time命令
查看程序执行时间
- 如何修改IDM下载器的临时文件夹位置
所有的应用程序在下载时,都会有一些默认的选项.比如产生的临时文件存放在C盘目录下,或者定期自动更新等设置.那么当我们的计算机上安装了很多程序之后,C盘的空间就会渐渐地变小了,从而有了空间不足等等情况, ...
- Echo Delay:FL中好用的声音制作处理方法
今天来一起研究FL Studio的Echo Delay的作用,Echo Delay可以从MIDI输入创建回声,并允许我们通过音量,声像,切除和共振,音高和时间来操纵延迟. 图1:Echo Dealy ...
- 基于Python+requests搭建的自动化框架-实现流程化的接口串联
框架产生目的:公司走的是敏捷开发模式,编写这种框架是为了能够满足当前这种发展模式,用于前后端联调之前(后端开发完接口,前端还没有将业务处理完毕的时候)以及日后回归阶段,方便为自己腾出学(mo)习(yu ...
- SpringBoot---WebMvcConfigurer详解
1. 简介 2. WebMvcConfigurer接口 2.1 addInterceptors:拦截器 2.2 addViewControllers:页面跳转 2.3 addResourceHandl ...
- php数字运算与格式化
浮点数高精度运算 PHP 官方手册 浮点数的精度有限.尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16.非基本数学运算可能会给出更大误 ...