📄 controlmenu.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 + -