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
下一篇 2020年1月22日 上午11:15

99%的人还看了以下文章

  • 如何用R语言绘制散点图

    这篇文章主要介绍了如何用R语言绘制散点图,帮助大家更好的理解和学习使用R语言,感兴趣的朋友可以了解下

    2022年8月9日 编程开发
    6490
  • java两个窗体Form1和Form2之间怎么传递参数?

    开发java图形界面程序时,会遇到一个窗体向另外一个窗体传递参数的问题,好多初学者很是迷茫。中国网页设计特别编写了一个简单程序用于演示两个窗体之间如何传递参数,代码如下:Form1.java代码: import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.Acti…

    2021年11月25日
    2.0K0
  • PHP获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

    php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。

    2023年3月8日
    8960
  • Python安装-小白图文教程(精)

    python优点 python非常简单,易学。 python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法。 Python程序无需修改就可以在任何平台上面运行。 Python既支持面向过程的函数编程也支持面向对象的抽象编程。 你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的…

    2019年3月15日 编程开发
    5.5K1
  • 快收藏!破解WiFi密码的Python程序源码泄露了

    通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。 泄露的Python程序源码: import pywifi from pywifi import const import time import datetime # 测试连接,返回链接结果 http://www.125jz.com/ 分享 def wifiConnect(pwd):…

    2023年1月29日
    2.2K0
  • Java Vector可实现自动增长的对象数组

    java.util.vector提供了向量类(Vector)以实现类似动态数组的功能。创建了一个向量类的对象后,可以往其中随意插入不同类的对象,即不需顾及类型也不需预先选定向量的容量,并可以方便地进行查找。 对于预先不知或者不愿预先定义数组大小,并且需要频繁地进行查找,插入,删除工作的情况,可以考虑使用向量类。 向量类提供了三种构造方法: public ve…

    2020年8月20日
    1.9K0

发表回复

登录后才能评论