• Java实现拼图小游戏(2)——菜单搭建(有关Java中的JMenuBar知识点)


    一、前言

    本文主要是实现拼图小游戏中的菜单搭建

    二、搭建步骤

    1. 创建JMenuBar

    JMenuBar的中文含义是菜单栏,也就是我们会在小游戏最上面那一栏看到的东西,在小游戏中我们的菜单栏如下所示
    在这里插入图片描述
    要创建菜单栏,就要new一个对象

    JMenuBar jMenuBar = new JMenuBar();
    
    • 1

    2. 创建Jmenu

    Menu类表示从菜单栏部署的下拉菜单组件,在本游戏中有两个:功能和关于我们,那么我们也要自定义一个变量名来写这两个菜单组件,此处为了能够见名知意,我们将两个变量名设置functionJMenuaboutJMenu,如果读者想要设置为其它名字也是可以的,括号内只需要传递参数(名字)即可
    在这里插入图片描述

    JMenu functionJMenu = new JMenu("功能");
    JMenu aboutJMenu = new JMenu("关于我们");
    
    • 1
    • 2

    3. 创建JMenuItem

    同样,我们要new一个对象,并在括号内传递参数(名字)

    JMenuItem restartItem = new JMenuItem("重新游戏");
    JMenuItem reloginItem = new JMenuItem("重新登录");
    JMenuItem closeItem = new JMenuItem("关闭游戏");
    JMenuItem accountItem = new JMenuItem("公众号");
    
    • 1
    • 2
    • 3
    • 4

    4. 将JMenuItem放到Jmenu中

    当我们创建完了下拉菜单中的内容时,我们要将下拉菜单中的内容放到菜单中,这样才能实现下图的效果,要注意的是下拉菜单中的内容要添加到对应的菜单中,要看清楚括号内传递的参数,此处括号内传递的参数是上文提到的新的对象
    在这里插入图片描述
    这里我们使用add函数来实现

    functionJMenu.add(restartItem);
    functionJMenu.add(reloginItem);
    functionJMenu.add(closeItem);
    aboutJMenu.add(accountItem);//将"关于我们"下条目添加到"关于我们"里
    
    • 1
    • 2
    • 3
    • 4

    5. 将Jmenu放到JMeanuBar中

    创建完了菜单以后,要把菜单(刚刚被我们定义的 functionJMenu 和 aboutJMenu )放到菜单栏里,这样菜单栏里面才会有两个单独的菜单,效果如下图所示
    在这里插入图片描述
    同样,我们使用add函数来实现

    jMenuBar.add(functionJMenu);
    jMenuBar.add(aboutJMenu);
    
    • 1
    • 2

    6. 将JMenuBar添加到整个JFrame

    由于我们现在所写的一切东西都是要能够在屏幕上看到的,而JFrame是屏幕上window的对象,有了它才能有可视化界面,所以给我们要整个界面设置菜单,将JMenuBar添加到整个JFrame中,这样才能在界面中有一个单独一栏的菜单栏
    这里我们使用set函数来设置JMenuBar

    this.setJMenuBar(jMenuBar);
    
    • 1

    三、完整代码

    import javax.swing.*;
    
    public class GameJFrame extends JFrame {
    
        public  GameJFrame(){
    
            //设置界面大小
            this.setSize(603,680);
    
            //设置标题
            this.setTitle("拼图小游戏 V1.0");
    
            //设置永远置顶
            this.setAlwaysOnTop(true);
    
            //设置程序随着窗口关闭而结束运行
            //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            this.setDefaultCloseOperation(3);
    
            //设置界面居中
            this.setLocationRelativeTo(null);
    
    
            //初始化菜单
            //创建整个菜单对象(创建JMenuBar)
            JMenuBar jMenuBar = new JMenuBar();
    
            //创建"功能"和"关于我们"(创建JMenu)
            JMenu functionJMenu = new JMenu("功能");
            JMenu aboutJMenu = new JMenu("关于我们");
    
            //创建菜单下条目(创建JMenuItem)
    
            JMenuItem restartItem = new JMenuItem("重新游戏");
            JMenuItem reloginItem = new JMenuItem("重新登录");
            JMenuItem closeItem = new JMenuItem("关闭游戏");
            JMenuItem accountItem = new JMenuItem("公众号");
    
            //将"功能"下条目添加到"功能"里(将JMenuItem放到JMenu中)
    
            functionJMenu.add(restartItem);
            functionJMenu.add(reloginItem);
            functionJMenu.add(closeItem);
            aboutJMenu.add(accountItem);//将"关于我们"下条目添加到"关于我们"里
    
            //将JMenu放到JMenuBar中
            jMenuBar.add(functionJMenu);
            jMenuBar.add(aboutJMenu);
    
            //给整个界面设置菜单,将JMenuBar添加到整个JFrame中
            this.setJMenuBar(jMenuBar);
    
            //设置可视化界面
            this.setVisible(true);
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    四、优化代码

    如果我们的需求发生了变化需要改变代码的话,我们需要一条条看代码并修改,这样效率非常低,那么我们就需要把实现一个功能的代码全部都打包放到一个方法中,这样我们如果需要修改某一个功能的时候,只需要去相应的方法中修改即可
    在IDEA中,我们选中需要打包的代码,使用快捷键Ctrl+Alt+M可以直接打包生成一个类
    在这里插入图片描述

    我们只需要写一个方法名即可生成
    在这里插入图片描述
    这样的话我们的代码就会简洁很多,而且修改起来也会非常方便
    在这里插入图片描述

    五、结语

    在写这个程序的时候,会遇到搭建菜单但是无法实现的问题,如果读者遇到了同样的问题,可以点击下方链接查看解决方法
    搭建完菜单后运行不显示菜单的原因及其解决方法(拼图小游戏)

  • 相关阅读:
    【面试题】 ES6知识点详细解析
    期权怎样的加仓才是合理的加仓?
    全国产飞腾模块麒麟信安操作系统安全漏洞
    Ae 效果:CC Blobbylize
    《基于散列表的电话号码查找系统》数据结构 课程设计
    【python基础】input函数
    Docker部署PgSQL&Adminer
    vite+vue集成cesium
    DOM中Element对象常用属性与方法大全
    吐槽 B 站收费,是怪它没钱么?
  • 原文地址:https://blog.csdn.net/Alita233_/article/details/126884352