?? 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 + -