文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java是如何做带复选框的菜单

2023-06-22 04:00

关注

本篇文章为大家展示了Java是如何做带复选框的菜单,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Java是如何做带复选框的菜单

说明:

        上面是我用Java做的扫雷游戏,其中就用到了带复选框式的菜单,原来也是用JCheckBoxMenuItem做的,但发现实在是问题多多,后干脆就用普通的JMenuItem来做,效果也不错。实际上说穿了很简单,就是在菜单的文本上做文章,前面加上一个 √ 即可。通过比较文本内容来判断是显示选中还是未选中,前面加还是不加 √ ,同时其他的文本内容如何变化,就好像扫雷的难度,初级、中级、高级只能选中一个。

代码:

package com.game.mine; import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JCheckBoxMenuItem; public class GameFrame extends JFrame implements ActionListener{private static final long serialVersionUID = 2596945399892762751L; private GamePanel gamePanel;    JMenuItem jmi_easy,jmi_normal,jmi_hard;        public GameFrame(){try{//窗口this.setTitle("扫雷");this.setLayout(null);this.setResizable(false);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//菜单JMenuBar jmb_minesweeper = new JMenuBar();JMenu jm_game = new JMenu("游戏");jm_game.setFont(new Font("微软雅黑",Font.PLAIN,12));JMenuItem jmi_new = jm_game.add("  开局");jmi_new.setFont(new Font("微软雅黑",Font.PLAIN,12));jmi_new.addActionListener(this);jmi_new.setActionCommand("new");jm_game.addSeparator();            this.jmi_easy = jm_game.add("√ 初级");this.jmi_easy.setFont(new Font("微软雅黑",Font.PLAIN,12));this.jmi_easy.addActionListener(this);this.jmi_easy.setActionCommand("easy");            this.jmi_normal = jm_game.add("  中级");this.jmi_normal.setFont(new Font("微软雅黑",Font.PLAIN,12));this.jmi_normal.addActionListener(this);this.jmi_normal.setActionCommand("normal");            this.jmi_hard = jm_game.add("  高级");this.jmi_hard.setFont(new Font("微软雅黑",Font.PLAIN,12));this.jmi_hard.addActionListener(this);this.jmi_hard.setActionCommand("hard");jm_game.addSeparator();JMenuItem jmi_exit = jm_game.add("  退出");jmi_exit.setFont(new Font("微软雅黑",Font.PLAIN,12));jmi_exit.addActionListener(this);jmi_exit.setActionCommand("exit");jmb_minesweeper.add(jm_game);JMenu jm_help = new JMenu("帮助");jm_help.setFont(new Font("微软雅黑",Font.PLAIN,12));JMenuItem jmi_about = jm_help.add("关于");jmi_about.setFont(new Font("微软雅黑",Font.PLAIN,12));jmi_about.addActionListener(this);jmi_about.setActionCommand("about");jmb_minesweeper.add(jm_help);this.setJMenuBar(jmb_minesweeper);//面板this.gamePanel = new GamePanel();this.add(this.gamePanel);//显示this.gamePanel.setLevel(this.gamePanel.EASY);this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);this.setVisible(true);}catch(Exception e){JOptionPane.showMessageDialog(this,"程序出现异常错误,即将退出!\r\n\r\n"+e.toString(),"提示",JOptionPane.ERROR_MESSAGE);System.exit(0);}}@Overridepublic void actionPerformed(ActionEvent e){String command = e.getActionCommand();if("new".equals(command)){this.gamePanel.newGame();}else if("easy".equals(command)){             this.jmi_easy.setText("√ 初级");             this.jmi_normal.setText("  中级");             this.jmi_hard.setText("  高级");             this.gamePanel.setLevel(this.gamePanel.EASY);             this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);}else if("normal".equals(command)){              this.jmi_easy.setText("  初级");              this.jmi_normal.setText("√ 中级");              this.jmi_hard.setText("  高级");              this.gamePanel.setLevel(this.gamePanel.NORMAL);              this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);}else if("hard".equals(command)){               this.jmi_easy.setText("  初级");               this.jmi_normal.setText("  中级");               this.jmi_hard.setText("√ 高级");               this.gamePanel.setLevel(this.gamePanel.HARD);               this.setSize(this.gamePanel.getWidth() + 6,this.gamePanel.getHeight() + 50);}else if("exit".equals(command)){System.exit(0);}else if("about".equals(command)){JOptionPane.showMessageDialog(this,"我是小木鱼(Lag)","提示",JOptionPane.INFORMATION_MESSAGE);}} }

上述内容就是Java是如何做带复选框的菜单,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯