特曼de学习笔记 -博客 | 技术分享 - JMenu
type: channel
link: https://www.yuofyou.cn/tag/JMenu/
items: Java Swing(12)菜单条 JMenuBar/ 菜单JMenu / 菜单项JmenuItem

Java Swing(12)菜单条 JMenuBar/ 菜单JMenu / 菜单项JmenuItem
type: item
date: 2020-11-26T22:16:26+08:00
description: JMenuBar是什么JMenuBar是菜单栏，也就是程序运行后最上面顶部出现的一栏 红色区域就叫菜单栏创建菜单条JMenuBar JMenuBar menuBar = new JMenuBar(); 设置窗口的菜单栏将窗口的菜单栏设置为menuBar jFrame.setJMenuBar(menuBar);创建菜单JMenu上面已经添加好了菜单条，但是并不会显示任何菜单，所以还需要往菜单条里面添加菜单 JMenu menu1 = new JMenu("文件"); JMenu menu2 = new JMenu("编辑"); JMenu menu3 = new JMenu("视图");添加菜单创建好了菜单，也需要把菜单添加到菜单栏上面 menuBar.add(menu1); menuBar.add(menu2); menuBar.add(menu3);设置菜单快捷键如果我们想使用快捷键打开菜单怎么做呢menu1.setMnemonic(KeyEvent.VK_F);此时我们按照alt和F就会打开菜单menu1 把VK_F替换成其它字符就是其他的快捷键创建菜单项JmenuItem接下来是往菜单里面添加菜单项，也就是说当用户点击这个菜单的时候下面展开的内容 JMenuItem item1 = new JMenuItem("打开"); JMenuItem item2 = new JMenuItem("保存"); JMenuItem item3 = new JMenuItem("另存为"); JMenuItem item4 = new JMenuItem("退出"); 添加菜单项只是单单创建菜单项是不行的，需要将菜单项添加到对应菜单里。这里我们把 1 2 3 4菜单项全部添加到menu1里面 menu1.add(item1); menu1.add(item2); menu1.add(item3); menu1.addSeparator(); menu1.add(item4);这里就会按照顺序添加进去，为了美观我们在第三个菜单项后面添加一根横线addSeparator() 菜单项被单击事件当菜单项被单击时执行一些代码如何实现呢 item1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("打开"); } });完整代码import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class SwingTest { public static void main(String[] args) { JFrame jFrame = new JFrame("beyole"); jFrame.setSize(300, 200); jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE);// 设置关闭退出 JMenuBar menuBar = new JMenuBar(); jFrame.setJMenuBar(menuBar); JMenu menu1 = new JMenu("文件"); menu1.setMnemonic(KeyEvent.VK_F); JMenu menu2 = new JMenu("编辑"); JMenu menu3 = new JMenu("视图"); menuBar.add(menu1); menuBar.add(menu2); menuBar.add(menu3); JMenuItem item1 = new JMenuItem("打开"); item1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("打开"); } }); JMenuItem item2 = new JMenuItem("…