JMenuBar是什么

JMenuBar是菜单栏,也就是程序运行后最上面顶部出现的一栏
file
红色区域就叫菜单栏

创建菜单条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()
file

菜单项被单击事件

当菜单项被单击时执行一些代码如何实现呢

        item1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                System.out.println("打开");
            }
        });

完整代码

file

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("保存");
        JMenuItem item3 = new JMenuItem("另存为");
        JMenuItem item4 = new JMenuItem("退出");
        menu1.add(item1);
        menu1.add(item2);
        menu1.add(item3);
        menu1.addSeparator();
        menu1.add(item4);
        jFrame.setVisible(true);
    }

    }
最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏