Java程序设计 图形用户界面 【十三】菜单

菜单组件

JMenu与JMenuBar

菜单

JMenuBar组件的功能是用来摆放JMenu组件,当建立完多个JMenu组件之后,需要通过JMenuBar组件来将JMenu组件加入到窗口中

JMenuBar

方法 作用
public JMenuBar() 创建新的JMenuBar对象
public JMenu add(JMenu e) 将指定的JMenu加入到JMenuBar中
public JMenu getMenu(int index) 返回指定位置的菜单
public int getMenuCount() 返回菜单栏上的菜单数

JMenu

方法 作用
public JMenu(String s) 创建新的JMenu,并指定菜单名称
public JMenuItem add(JMenuItem menuItem) 增加新的菜单项
public void addSeparator() 加入分隔线

构建菜单演示:

import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");JTextArea text = new JTextArea();text.setEditable(true);frame.getContentPane().add(new JScrollPane(text));JMenu file = new JMenu("文件(F)");JMenuBar menuBar = new JMenuBar();menuBar.add(file);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(500,500);}
}

建立了一个JMenu,然后将JMenu的对象加入到JMenuBar中,再通过JFrame中的setJMenuBar()方法将此菜单栏加入到窗体上

JMenuItem

使用JMenuItem组件在菜单中加入菜单项

JMenuItem继承AbstractButton类,因此JMenuItem也可以理解为一种特殊的JButton组件,当选择某个菜单项时也会触发ActionEvent事件

JMenuItem类

方法 作用
public JMenuItem(Icon icon) 创建带有图标的JMenuItem
public JMenuItem(String text) 创建带有指定文本的JMenuItem
public JMenuItem(String text,Icon icon) 创建带有指定文本和图标的JMenuItem
public JMenuItem(String text,int mnemonic) 创建带有指定文本的JMenuItem,并指定助记符
public void setMnemonic(int mnemonic) 指定菜单项的助记符
public void setAccelerator(KeyStroke keyStroke) 设置快捷键的组合键
import sun.security.krb5.internal.crypto.KeyUsage;import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");JTextArea text = new JTextArea();text.setEditable(true);JMenu file = new JMenu("文件");JMenuBar menuBar = new JMenuBar();JMenuItem newItem = new JMenuItem("新建");JMenuItem openItem = new JMenuItem("打开");newItem.setMnemonic('N');openItem.setMnemonic('O');newItem.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));openItem.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));file.add(newItem);file.add(openItem);menuBar.add(file);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(300,300);}
}

事件处理

JMenuItem与JButton都是AbstractButton类的子类,事件处理机制是一样的

import sun.security.krb5.internal.crypto.KeyUsage;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class Hello {public static void main(String[] args) {JFrame frame = new JFrame("一");final JTextArea text = new JTextArea();text.setEditable(true);JMenu file = new JMenu("文件");JMenuBar menuBar = new JMenuBar();JMenuItem newItem = new JMenuItem("新建");JMenuItem openItem = new JMenuItem("打开");newItem.setMnemonic('N');openItem.setMnemonic('O');newItem.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));openItem.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));file.add(newItem);file.add(openItem);menuBar.add(file);newItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {text.append("选择了新建\n");}});openItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {text.append("选择了打开\n");}});frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {super.windowClosing(e);System.exit(1);}});frame.add(text);frame.setJMenuBar(menuBar);frame.setVisible(true);frame.setSize(300,200);frame.setLocation(300,300);}.
}.

点击菜单项后 出现对应提示文字

Java程序设计 图形用户界面 【十三】菜单相关推荐

  1. Java程序设计 图形用户界面 【十二】下拉列表JComboBox

    Java程序设计 图形用户界面 [十二]下拉列表JComboBox 下拉列表JComboBox JList是以列表框的形式进行显示的 有列表又可以自己输入数据这种组件就称为下拉列表框 JComboBo ...

  2. Java程序设计 图形用户界面 小巫版简易计算器

    /** 作者:wwj 时间:2012/4/13 功能:实现一个计算器应用程序实验要求:编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, ...

  3. java制作菜单教程_java图形用户界面实现菜单功能

    本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下 题目:编写一个图形用户界面,实现菜单的功能.有3个一级菜单项:File.Edit和Help.在File菜单项中 ...

  4. Java语言程序设计----- 图形用户界面设计

    Java语言程序设计----- 图形用户界面设计 1.实验目的 (1)掌握Java Swing组件的使用方法. (2)理解委托事件处理模型. (3)设计具有图形用户界面的.能够响应事件的Java应用程 ...

  5. 201521123122 《java程序设计》第十三周学习总结

    ## 201521123122 <java程序设计>第十三周实验总结 ## 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1 ...

  6. 用java编写关于母亲节的代码,java编纂图形用户界面程序-实例2:母亲节快乐!o~ 努力...

    java编写图形用户界面程序--实例2:母亲节快乐!^_^o~ 努力! 最近时间越来越少了,又要准备省赛,又要备考四级! 作为一个地地道道的"农村娃"."计算机渣&quo ...

  7. Java Swing 图形用户界面——常见组件

    一直在用C\C++,还没开始认真学Java,但这几天课堂上的Java Swing 图形用户界面引起了我的兴趣.正好前段时间在玩Qt的图形化界面,发现两者有很多相似之处,学起来也容易很多.(但实际上Ja ...

  8. Java | GUI 图形用户界面

    一.什么是GUI GUI 全称 Graphical User Interface 图形用户界面,指采用图形方式显示的计算机操作用户界面. 软件以图形界面形式运行时,用户可借助于菜单.按钮.标签等组件和 ...

  9. JAVA GUI(图形用户界面)

    1.GUI概述 目前,我们编写的程序都是基于控制台的程序GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好 2.Swing概念 位于javax.s ...

最新文章

  1. 【Sql Server】DateBase-自动化
  2. 2.4g 无线键鼠对码软件_富德iK8900无线键鼠套装评测:静音纤薄
  3. JavaScript实现鼠标拖拽登录框
  4. Mysql:事务管理——未完待续
  5. 快速打开unity manual的方式
  6. Java finally
  7. 笔记本老出现计算机,电脑老是自动重启,教您如何有效解决这个问题
  8. android dialog 自定义布局,如何设置AlertDialog的自定义布局?
  9. 到无限(溪流)和超越!
  10. ListView中让TextView中的文字进行单独滚动
  11. qsplitter 折叠_河南断桥折叠门效果
  12. linux版vmware卡顿,Manjaro下Vmware安装的MacOS10.15遇到的性能问题导致几乎无法启动问题及解决...
  13. spring boot + vue + element-ui全栈开发入门——前端编辑数据对话框
  14. 2008年信息安全服务市场发展报告
  15. Ghost配置2——添加代码高亮
  16. 【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第四章
  17. C#反编译工具:.NET Reflector导出代码
  18. 2022年全球市场柠檬酸酯总体规模、主要生产商、主要地区、产品和应用细分研究报告
  19. SpringCloud这35问,弄懂了面试官都不得不夸你一句
  20. 哈工大软件构造lab3

热门文章

  1. instagram私信关注评论协议现状
  2. 手把手教你申请企鹅号
  3. 冰淇淋融化SVG搞笑动画
  4. 如何制作高光谱三维图像
  5. Flask最基本示例
  6. [附源码]Java计算机毕业设计SSMjava视频点播系统
  7. 如何有效戒掉晚睡强迫症
  8. 如何解决:无法识别的USB设备,跟这台计算机连接的前一个USB设备工作不正常,Windows无法识别
  9. 搜狗蜘蛛池批量推送-搜狗蜘蛛池打造
  10. IFNULL、ISNULL、NULLIF(SYBASE)