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. 文档丢失不用怕,EasyRecovery帮你一键恢复

    我们在使用电脑的过程中,有时会因为各种原因,导致我们所写的文档丢失了.遇到这种情况,该怎么办呢? 下面,就给大家分享一下用EasyRecovery如何恢复被丢失的文档. 1.双击进入EasyRecov ...

  2. Redis设计与实现一之简单的动态字符串

    简单的动态字符串 Redis没有直接使用C语言中的字符串,而是自己构建了SDS这样的一种简单动态字符串,并且将他作为Redis中字符串的默认的表示. 但是并未完全抛弃C语言字符串,只不过是在C语言字符 ...

  3. python升级版本

    前言 目前大部分使用的3.6或者3.7以及更低版本存在不少问题,随着python的更新很多问题得到修复并且具有更多新的功能. 更新 3.y.x版本升级到3.y.z 下载需要升级的exe安装包点击upg ...

  4. python画猫并打包成EXE文件

    因python自带有海龟画图库,尝试给爱猫的小仙女来画个猫咪. 1.代码如下 from turtle import * #两个函数用于画心 def curvemove(): for i in rang ...

  5. Linux查看并杀死被占用的端口

    sudo apt-get install lsof     //安装lsof sudo lsof -i:端口号 //查找对应的进程号 sudo kill -9 进程号 //杀死对应的进程

  6. 手把手教你使用Vue/React/Angular三大框架开发Pagination分页组件

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...

  7. java45

    Collection c2 = new ArrayList(); c2.add("a"); c2.add("b"); //移除集合中的某个元素 c2.remov ...

  8. MacBook键盘锁定、按键失效、无反应等问题

    目录 MacBook按键无反应 u,i,o,j,k,l等键失灵 capslock灯不亮 原文链接:joselynzhao·CSDN·MacBook键盘锁定.按键失效.无反应等问题 MacBook按键无 ...

  9. JZOJ 【NOIP2016提高A组集训第16场11.15】SJR的直线

    JZOJ [NOIP2016提高A组集训第16场11.15]SJR的直线 题目 Description Input Output Sample Input 6 0 1 0 -5 3 0 -5 -2 2 ...

  10. 【GDKOI2014】JZOJ2020年8月13日提高组T4 内存分配

    [GDKOI2014]JZOJ2020年8月13日提高组T4 内存分配 题目 Description Input Output 输出m行,每行一个整数,代表输入中每次程序变化后系统所需要的空闲内存单位 ...