⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 controlmenu.java

📁 该程序源码是我大二暑假时用Java语言写的一个贪食蛇游戏
💻 JAVA
字号:
package SnakeGame;

/**
 * 菜单部分 。。。比较简单。。没怎么写注释。。
 */

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class ControlMenu
    extends JMenuBar {
  GameFrame owner;
  JMenu[] menu;
  JMenuItem[] menuItem;
  //JMenuItem menuItemRecord;

  public ControlMenu(GameFrame owner) {
    this.owner = owner;
    owner.setJMenuBar(this);
    String[] menu_name = {
        "Snake Game", "Best Record", "Game About"};
    menu = new JMenu[menu_name.length];
    for (int i = 0; i < menu_name.length; i++) {
      menu[i] = new JMenu(menu_name[i]);
      this.add(menu[i]);
    }
    String[] menuItem_name = {
        "New Game", "Stop Game", "Pause Game", "Start Game", "Exit","Record", "About"};
    menuItem = new JMenuItem[menuItem_name.length];
    for (int i = 0; i < menuItem_name.length; i++) {
      menuItem[i] = new JMenuItem(menuItem_name[i]);
      menuItem[i].addActionListener(new ActionHandler());
    }
    //menuItemRecord = new JMenuItem("Record");
    //menu[0].add(menuItemRecord);
    menu[0].add(menuItem[0]);
    //menu[0].add(menuItem[1]);
    /*
         if(owner.paused)
         {
      menu[0].add(menuItem[2]);
         }
         else
         {
      menu[0].add(menuItem[3]);
         }*/
    menu[0].add(menuItem[2]);
    menu[0].add(menuItem[3]);
    menu[0].add(menuItem[4]);

    menu[1].add(menuItem[5]);

    menu[2].add(menuItem[6]);
    /*在别的地方改变菜单状态,当游戏暂停时,暂停游戏菜单项不可用,
     *  当游戏进行中时,开始游戏(不是重新开始一个新游戏)项不可用,
     **/
    /*
         System.out.println(owner.paused);
         if(owner.paused)
         {
      menuItem[2].setEnabled(true);
      menuItem[2].setOpaque(false);
         }
         else
         {
      menuItem[3].setEnabled(true);
      menuItem[3].setOpaque(false);
         }*/
  }

  private class ActionHandler
      implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      if (e.getSource() == menuItem[0]) {            //开始新的游戏
        owner.resetGame();
        ControlMenu.this.setVisible(false);
        //owner.paused = false;
      }
      else if (e.getSource() == menuItem[1]) {        //停止游戏
        owner.stopGame();
        ControlMenu.this.setVisible(false);
      }
      else if (e.getSource() == menuItem[2]) {       // 暂停游戏
                                                     // 注意暂停游戏后,要设置菜单隐藏,
                                                     // 并使暂停菜单栏不能用
        owner.snakeTimer.stop();
        owner.changePausedState();
        ControlMenu.this.setVisible(false);

        GameFrame.configMenu.menuItem[2].setEnabled(false);
        GameFrame.configMenu.menuItem[3].setEnabled(true);
      }
      else if (e.getSource() == menuItem[3]) {         //继续游戏
                                                       // 注意继续游戏后,要设置菜单隐藏,
                                                       // 并使继续菜单栏不能用
        owner.snakeTimer.start();
        owner.changePausedState();
        ControlMenu.this.setVisible(false);

        GameFrame.configMenu.menuItem[3].setEnabled(false);
        GameFrame.configMenu.menuItem[2].setEnabled(true);
      }
      else if (e.getSource() == menuItem[4]) {         //退出
        System.exit(0);
      }
      else if (e.getSource() == menuItem[6]) {         //作者相关,

        JOptionPane.showMessageDialog(null, "<html><p><font size=15 color=red>Snake Game</font></p><p align=RIGHT><font size=10 color=blue>Ver 1.0</font></p><p><font color=blue>联系方式:</font></p><p>Author: Miracle (BUAA330604)</p><p color=blue>djbbuaa@163.com</p><p color=blue>QQ:151492640</p></html>","关于",JOptionPane.PLAIN_MESSAGE);
      }
      else if(e.getSource() == menuItem[5]){
        recordView view = new recordView();
        view.getRecord();
        view.setVisible(true);
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -