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

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

一、前言


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


二、搭建步骤


1. 创建JMenuBar


JMenuBar的中文含义是菜单栏,也就是我们会在小游戏最上面那一栏看到的东西,在小游戏中我们的菜单栏如下所示


28b83668ed0744eb99e9069acd8313b6.png


要创建菜单栏,就要new一个对象


JMenuBar jMenuBar = new JMenuBar();


2. 创建Jmenu


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


3b90c04eac3d4a20a64b8c1eb7711e76.png


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


3. 创建JMenuItem


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


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


4. 将JMenuItem放到Jmenu中


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


188c39e5d05c4860a464897c80f581e4.png


这里我们使用add函数来实现


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


5. 将Jmenu放到JMeanuBar中


创建完了菜单以后,要把菜单(刚刚被我们定义的 functionJMenu 和 aboutJMenu )放到菜单栏里,这样菜单栏里面才会有两个单独的菜单,效果如下图所示


cf7043a4ce4b4884b60e9294bcbc4755.png


同样,我们使用add函数来实现


jMenuBar.add(functionJMenu);
jMenuBar.add(aboutJMenu);


6. 将JMenuBar添加到整个JFrame中


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

这里我们使用set函数来设置JMenuBar


this.setJMenuBar(jMenuBar);


三、完整代码


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);
    }
}


四、优化代码


如果我们的需求发生了变化需要改变代码的话,我们需要一条条看代码并修改,这样效率非常低,那么我们就需要把实现一个功能的代码全部都打包放到一个方法中,这样我们如果需要修改某一个功能的时候,只需要去相应的方法中修改即可

在IDEA中,我们选中需要打包的代码,使用快捷键Ctrl+Alt+M可以直接打包生成一个类


078a6b55d18d4532a7fdd6a580e9b08b.png


我们只需要写一个方法名即可生成


6e10d8086451485995ca3a271f20c569.png


这样的话我们的代码就会简洁很多,而且修改起来也会非常方便


057801199e6a407ba23eed2958440521.png


五、结语


在写这个程序的时候,会遇到搭建菜单但是无法实现的问题,如果读者遇到了同样的问题,可以点击下方链接查看解决方法

【搭建完菜单后运行不显示菜单的原因及其解决方法(拼图小游戏)】

相关文章
|
3月前
|
安全 Java 编译器
揭秘JAVA深渊:那些让你头大的最晦涩知识点,从泛型迷思到并发陷阱,你敢挑战吗?
【8月更文挑战第22天】Java中的难点常隐藏在其高级特性中,如泛型与类型擦除、并发编程中的内存可见性及指令重排,以及反射与动态代理等。这些特性虽强大却也晦涩,要求开发者深入理解JVM运作机制及计算机底层细节。例如,泛型在编译时检查类型以增强安全性,但在运行时因类型擦除而丢失类型信息,可能导致类型安全问题。并发编程中,内存可见性和指令重排对同步机制提出更高要求,不当处理会导致数据不一致。反射与动态代理虽提供运行时行为定制能力,但也增加了复杂度和性能开销。掌握这些知识需深厚的技术底蕴和实践经验。
74 2
|
23天前
|
安全 Java 编译器
Java基础-知识点(二)
Java基础-知识点(二)
12 0
|
23天前
|
存储 缓存 安全
Java基础-知识点(一)
Java基础-知识点(一)
15 0
|
3月前
|
数据可视化 Java
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
这篇文章介绍了使用Java语言和Swing框架实现的扫雷小游戏的详细代码和实现过程。
使用ChatGPT实现可视化操作扫雷小游戏 【java代码实现】
|
3月前
|
人工智能 Java 定位技术
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
这篇文章通过一个使用ChatGPT实现的Java扫雷小游戏案例,展示了ChatGPT在编程领域的应用能力。文章中包含了扫雷游戏的Java代码实现,代码中初始化了雷区地图,随机放置雷,计算每个格子周围雷的数量,并提供了一个简单的文本界面与用户交互进行游戏。游戏通过控制台输入接受玩家的指令,并给出相应的反馈。
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
|
3月前
|
Java
05 Java代码实现一个小游戏(剪刀石头布)和一个简易的万年历
05 Java代码实现一个小游戏(剪刀石头布)和一个简易的万年历
61 2
|
3月前
|
安全 Java 程序员
阿里开发手册 嵩山版-编程规约 (四)OOP规约-Java程序员必看知识点!!!
《阿里开发手册 嵩山版》的OOP规约部分强调了面向对象编程的最佳实践,包括正确使用静态方法、覆写方法的注解、可变参数的使用、接口的稳定性、equals和compareTo方法的使用、BigDecimal的正确比较、包装类与基本数据类型选择、POJO类的属性和方法设计等,以提升代码的质量和维护性。
|
8天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
79 38