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 ...
随机推荐
- rinetd小工具
一.介绍 tcp端口转发工具,针对ip:port的 连接进行转发.重点开源,且配置简单.不支持ftp,因为ftp要使用多个端口. 1.转发规则 [root@master tmp]# cat a.con ...
- python+selenium通过加载用户配置实现免登陆
1查看profile路径 在Chrome地址栏访问chrome://version,可以查看个人资料存储位置: 2 python代码如下: from selenium import webdriver ...
- iOS中如何使定时器NSTimer不受UIScrollView滑动所影响
以下是使用 scheduledTimerWithTimeInterval 方法来实现定时器 - (void)addTimer { NSTimer scheduledTimerWithTimeInter ...
- 线性代数中的线性方程组(chapter 1)
目录 线性代数中的线性方程组 线性方程组 行化简解法和阶梯型矩阵 向量方程 矩阵方程$Ax = b$ 线性代数中的线性方程组 第一章从线性方程组的角度,通过解线性方程组,开始解释数学矩阵,以及和线性代 ...
- MAT内存分析工具安装指南(MAT)
https://blog.csdn.net/mahl1990/article/details/79298616
- windows中flask的环境搭建
之前在ctf中遇到了python模板注入的题,于是就打算学习一下flask框架,它是基于Python的Web轻量级应用框架,与其他框架相比,Flask可以自主选择应用组件,可扩展性强. 安装也简单 第 ...
- 从内存泄露、内存溢出和堆外内存,JVM优化参数配置参数
内存泄漏 内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费.内存泄漏最终会导致OOM. 造成内存泄漏 ...
- moviepy音视频剪辑VideoClip类fl_image方法image_func报错ValueError: assignment destination is read-only解决办法
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换. 调用语法:fl_image(self, im ...
- CobaltStrike3.14&3.8安装&中文乱码解决
工具简介 Cobalt Strike 一款以 Metasploit 为基础的 GUI 框架式渗透测试工具,集成了端口转发.服务扫描,自动化溢出,多模式端口监听,exe.powershell 木马生成等 ...
- W12Scan和taoman批量刷edusrc(单机)
昨天看到教育漏洞群里面发了利用w12scan和taoman两个开源工具批量刷edusrc的帖子链接, https://www.bugku.com/thread-3810-1-1.html 跟着帖子上面 ...