菜单是图形用户界面的重要组成部分,它通常有两种使用方式:窗口菜单和快捷菜单。下面介绍窗口菜单的创建。
窗口菜单是由菜单条(MenmBar)、 菜单(Memu)、菜单项(Menltem)和复选菜单项CeckoMonultem等组成的。菜单放在菜单条里,菜单项放在菜单里。

(1)菜单条(MenBar)。

Java.awt包中的MenuBar类是负责创建菜单条的,即MenuBar类的一个实例就是一个菜单条。菜单条只能被添加到作为Frame对象中,整个菜单树的根基。
Frame类有一个将菜单条放置到窗口中的方法:
setMenuBar (MenuBar bar)
该方法将菜单条添加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条。

例如:
MenuBar MenuBar1 = new MenuBar()                   //创建菜单条
setMenuBar (MenuBar1)                                              //添加创建菜单条到Frame中
(2)菜单(Menu)。

Menu类负责创建菜单,即Menu类的一个实例就是一个菜单。 无法直接将菜单添加到容器的某位置,也无法使用布局管理器对其加以控制。菜单只能被添加到“菜单容器”菜单条(MenuBar) 中。
例如:
Menu Menu1=new Menu("文件")                                  //创建菜单
menubar . add (Menu1)                                                //添加到菜单条中
(3)菜单项(Menultem)。

MenuItem类是负责创建菜单项的,即MenuItem类的一个实例就是一个菜单项。菜单项必须添加到菜单中。MenuItem是整个“菜单树”中的“叶子节点”。Menultem对象可以添加ActionListener,使其能完成相应的操作,在后面的章节中会学习相关知识。
例如:
MenuItem item1=new MenuItem ("新建")                     //创建菜单项
menul . add (item1)                                                      //添加到菜单中
代码如下:

import java.awt.*;
import java.awt.event.*;
public class MenuDemo {
    Frame fr = new Frame("MenuDemo");
    MenuBar mb = new MenuBar();//以下生成菜单组件对象
    Menu m1 = new Menu("文件");
    MenuItem open = new MenuItem("打开");
    MenuItem close = new MenuItem("关闭");
    MenuItem exit = new MenuItem("退出");

MenuDemo()
        {
            fr.setSize(350,200);
            m1.add(open);                                                              //将菜单项加入到菜单中
            m1.add(close);
            m1.addSeparator();                                                      //将分隔条加入到菜单中
            m1.add(exit);
            mb.add(m1);                                                                 //将菜单加入到菜单条中
            
            fr.setMenuBar(mb);                                                      //显示菜单条
            fr.setVisible(true);
        }
        public static void main(String args[]) {
            new MenuDemo();
        }
}
运行结果:

说明:
(1)当希望在菜单项之间添加一条横向的分隔线,把菜单项分为几组时,可以添加分隔线。可以使用下面的方法:
menu1.addSeparator ()或者menul .add("-")

(2)复选菜单项与复选框一样有“选中”和“未选中”两种状态,处于“选中”状态的检测菜单项前面有一个小对号。
CheckboxMenultem Checkbox=new CheckboxMenultem(" ") ;//创建检测菜单项

menul. add (Checkbox) ;//添加到菜单中

Java:菜单(Menu)相关推荐

  1. 13、Java菜单条、菜单、菜单项

    13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...

  2. 系出名门Android(2) - 布局(Layout)和菜单(Menu)

    2019独角兽企业重金招聘Python工程师标准>>> 系出名门Android(2) - 布局(Layout)和菜单(Menu) 作者:webabcd 介绍 在 Android 中各 ...

  3. android e图标一会有一会没有反应,android解决菜单Menu添加Icon无效问题,让菜单同时显示图标和文字...

    今天主要解决在Android 4.0 以上的系统中,在java代码中给菜单Menu动态添加Icon无效问题.本人通过尝试网上给出的涉及到菜单的源码类 MenuBuilder通过反射更改mOptiona ...

  4. 解决android4.0系统中菜单(Menu)添加Icon无效问题

    在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标没有显出来,2.3系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 Me ...

  5. 菜单 java,java菜单的实现

    java 实现动态菜单,,java菜单的实现,java菜单权限实现 JAVA语言实现下来菜单源程序_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档JAVA语言实现下来 ...

  6. javaFX学习之 菜单(Menu)

    菜单(Menu)和菜单栏(MenuBar),添加菜单项(MenuItem),将菜单分组,创建子菜单(Submenu),以及设置上下文菜单(ContextMenu) 其中ContextMenu组件是为了 ...

  7. Android --- 关闭菜单menu

    如果想要实现按menu键后,和按返回键相同的效果关闭菜单menu. 可以使用Activity.java中的closeOptionsMenu()来实现 /*** Progammatically clos ...

  8. 【Qt】QtCreator中使用ActionManager类管理标题栏(MunuBar)、菜单(Menu)和菜单中的项目(Action)

    1.简介 QtCreator中使用ActionManager类管理标题栏(MunuBar).菜单(Menu)和菜单中的项目(Action),下面以创建"New"动作为例,介绍Act ...

  9. 菜单Menu(AS开发实战第四章学习笔记)

    4.5 菜单Menu Android的菜单主要分两种,一种是选项菜单OptionMenu,通过按菜单键或点击事件触发,另一种是上下文菜单ContextMenu,通过长按事件触发.页面的布局文件放在re ...

  10. yii2 rbac权限控制之菜单menu详细教程

    为什么80%的码农都做不了架构师?>>>    作者:白狼 出处:http://www.manks.top/yii2_rbac_menu.html本文版权归作者,欢迎转载,但未经作者 ...

最新文章

  1. git 初次push
  2. 蒙特卡洛粒子滤波定位算法_粒子滤波——来自哈佛的详细的粒子滤波器教程【1】...
  3. Github最强算法刷题笔记.pdf
  4. Discuz!X3.1数据库的操作(三)
  5. 手机app上的consent管理
  6. Android 系统(177)---Android消息机制分析:Handler、Looper、MessageQueue源码分析
  7. 成为一名二进制分析师需要用到的Linux二进制分析工具有哪些?
  8. 四阶行列式如何降阶_四阶行列式的计算方法
  9. 如何在 AWS 云中从 Amazon EC2 启动 RHEL 8?
  10. 大白菜android模拟器,大白菜U盘启动制作工具 v5.1
  11. 【Qt Quick】零基础入门系列之安装与卸载(一)
  12. 中英文免安装版IE6、IE7、IE8浏览器下载
  13. 百度也能直播带货!12小时——“慢行”才能持久
  14. 数据库学习:数据模型
  15. Spring 的 init-method 和 destory-method
  16. 运维体系框架标准化模型简介
  17. Python编程的乐趣
  18. 闲谈IPv6-IPv6对移动性的天然支持
  19. 【微信小程序】picker 滚动选择器
  20. 异地访问公司的ERP解决方案(完美部署上线,超级详细)

热门文章

  1. 第七届无线大数据研讨会总结
  2. (在线)实时图片加密
  3. JAVA快速开发平台比较---jeeplus,jeecg,jeesite
  4. Underscore和lodash 介绍
  5. Linux驱动设备号
  6. SSM重新开发计科院主页
  7. 人工智能机器人网站合集
  8. 信息安全学习4. 重放攻击的概念与防范
  9. 红海市场杀出的细分蓝海,车队管理改变商用车命运的「核武器」
  10. 大学英语B116-英译汉