Java GUI编程高级实例一:给应用程序添加菜单

主要内容:

给GUI应用程序添加菜单

“Java Editor”项目的界面更新

为组件定制弹出式菜单

给GUI应用程序添加工具栏

一、给GUI应用程序添加菜单

菜单的作用:给应用程序设置操作菜单。

Java GUI编程高级实例一:给应用程序添加菜单

菜单组成

JMenuItem—菜单项,直接指向一个具体的操作

JMenu—菜单,其中可加入菜单项(JMenuItem)和菜单(Jmenu)

JMenuBar—-菜单栏,在其中可以加入菜单(JMenu)

菜单的创建

JMenu、JMenuBar和JMenuItem类的构造方法见表:

Java GUI编程高级实例一:给应用程序添加菜单

如创建一个“File”菜单:

JMenu file = new JMenu("File");

菜单的组织

菜单栏可象别的组件一样添加到应用程序窗口。

JFrame窗口加入菜单栏的方法:

  public void setJMenuBar(JMenuBar menubar)

JMenuBar加入JMenu的方法:

  public JMenu add(JMenu c)

JMenu中加入JMenu、JMenuItem、分隔线的方法:

  public JMenuItem add(JMenuItem menuItem)

  public void addSeparator()

说明:因JMenu是JMenuItem的子类,故add(JMenuItem menuItem)也可加入JMenu菜单。

如:

file.add(new JMenuItem("New"));
file.addSeparator();

快捷键设置

ØJMenu的快捷键通常是Alt + 字符键的组合,可用setMnemonic方法设置:

JMenu对象.setMnemonic(int mnemonic);

JMenuItem的快捷键可以是Ctrl + 字符键或Alt + 字符键的组合,可用setAccelerator方法设置:

JMenuItem对象.setAccelerator(KeyStroke.getKeyStroke(参数1,参数2));

参数1指向快捷键字符。参数2指向控制字符,通常是KeyEvent. CTRL_MASK(Ctrl),KeyEvent.ALT_MASK(Alt)。

如:

open.setAccelerator(KeyStroke.getKeyStroke('O',KeyEvent.CTRL_MASK));

可给“open”菜单项设置快捷键“Ctrl + O”。

菜单项的事件处理

当用户选定一个菜单项时,该菜单项将发生ActionEvent事件。关于ActionEvent事件的处理,重申三要点:

(1) 安装侦听器 (implements ActionListener)

(2) 通过addActionListener方法设置侦听

(3) 重写方法actionPerformed实现事件处理

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/4620.html

赞 (0)
江山如画的头像江山如画管理团队
不逼自己一把,命运就会逼你一辈子-我们是自己命运的创造者
上一篇 2020年1月20日 下午4:56
Java GUI编程高级实例二:弹出式菜单及添加工具栏
下一篇 2020年1月22日 上午11:15

99%的人还看了以下文章

  • 如何设计单元测试用例,单元测试快速入门教程四

    测试人员在实际工作中根据不同覆盖要求设计面向代码的单元测试用例,运行测试用例后至少应实现如下覆盖需求: 对程序模块的所有独立的执行路径至少覆盖一次; 对所有的逻辑判定,真假两种情况至少覆盖一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。 至少应设计覆盖如下需求的基于功能的单元测试用例: 测试程序单元的功能是否实现; 测试程序单元性能…

    2018年4月18日
    5.0K0
  • idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法idea不识别@webServlet注解,javax.servlet.htttp 找不到的解决方法

    在servlet3.0以后,web.xml中对Servlet配置,可以通过@WebServlet注解配置.下面是@WebServlet的属性列表: 属性名 类型 描述 name String 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 value …

    2020年8月22日 • 编程开发
    20.5K0
  • myeclipse集成的tomcat在哪个目录下

    myeclipse集成了Tomcat服务器,本文介绍了myeclipse集成的tomcat在哪个目录下?查看myeclipse集成的tomcat在哪个目录下的方法

    2020年2月6日
    24.0K0
  • python 实战-逢7 过游戏的实现

    不知道你有没有玩过“逢 7 过”的游戏,游戏规则很简单: 几个人轮流报数,凡遇到 7 的倍数,或含 7 的数字就要跳过,否则就算失败。 今天我们就用 Python 来打印 1 到 100 之间,所有满足条件的数字。 知识点 Python 开发环境 int 类型 变量 运算符 while 循环 条件判断 💡提示: 开发中,我们经常要先构思框架,…

    2022年2月2日
    16.0K0
  • MVC详解:模型(Model)-视图(View)-控制器(Controller)

    MVC(模型-视图-控制结构)是软件开发中常用的一种架构模式。它强制性的将输入、处理和输出分开。使应用程序被分成三个核心部件:模型 (Model)、视图(View)和控制(Controller)。它们各自处理自己的任务,有效地分离存储数据和展示数据功能模块以降低它们之间的耦合度。 MVC体系结构: 模型层主要负责保存和访问业务数据,执行业务逻辑和操作。这一层…

    2020年2月23日
    9.0K0
  • python 字典的使用案例二:求平均分,并按平均分由高到低输出选手编号和最后得分

    校园好声音大赛,三位选手得分,由8位评委给出。 请根据评分表,将每们选手的得分去掉一个最高分和一个最低分后求平均分,并按照平均分由高到低输出选手编号和最后得分。 dicScores = {‘012’: [90, 94, 97, 86, 85, 89, 88, 85], ‘005’: [91, 91, 92, 98, 90, 96, 90, 95], ‘108…

    2020年1月22日
    23.6K0

发表回复

登录后才能评论