📄 mainmenu.java
字号:
/*
* 主菜单类 作者:肖昶
*/
package fivegame;
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDletStateChangeException;
public class MainMenu extends Canvas implements CommandListener {
private static Command exitCmd;// 退出命令
private static Command selectCmd;// 选择命令
private static int selected;// 当前选择序号
public static MainMenu instance;// 本类自身实例
private static Image[] menuImage;// 菜单图片数组
// 构造函数
public MainMenu() {
exitCmd = new Command("退出", 7, 1);
selectCmd = new Command("选择", 4, 1);
addCommand(exitCmd);
addCommand(selectCmd);
setCommandListener(this);
selected = 0;
menuImage = new Image[4];
try {
menuImage[0] = Image.createImage("/Menu1.PNG");
menuImage[1] = Image.createImage("/Menu2.PNG");
menuImage[2] = Image.createImage("/Menu3.PNG");
menuImage[3] = Image.createImage("/Menu4.PNG");
} catch (IOException x) {
System.out.println("Load Image Error!" + x.getMessage());
}
}
// 屏幕绘制函数paint(Graphics g)是Canvas抽象方法必须实现
public void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(menuImage[selected], (getWidth() - menuImage[selected]
.getWidth()) / 2, (getHeight() - menuImage[selected]
.getHeight()) / 2, 0);
}
// 从Canvas类重载
protected void keyPressed(int key) {
switch (getGameAction(key)) {
case 1: // '\001'
selected = ((selected - 1) + 4) % 4;
break;
case 6: // '\006'
selected = (selected + 1) % 4;
break;
}
repaint();
}
// 命令动作响应, CommandListener接口必须实现的方法
public void commandAction(Command cmd, Displayable display) {
if (cmd == exitCmd) {// 退出游戏
try {
FiveGame.fiveGame.destroyApp(false);
} catch (MIDletStateChangeException e) {
// 捕捉异常
}
FiveGame.fiveGame.notifyDestroyed();
} else if (cmd == selectCmd)// 选择
if (selected == 0)
FiveGame.display.setCurrent(MainGamePlayWithAI.getInstance());
else if (selected == 1)
FiveGame.display.setCurrent(SelectList.getInstance());// 切换至服务器/客户端选择画面
else if (selected == 2)
FiveGame.display.setCurrent(Setting.getInstance());
else {
Alert alt = new Alert("关于游戏...", null, null, AlertType.INFO);
StringBuffer sb = new StringBuffer("");
sb.append("1.游戏控制:\n").append(" 左移:左方向键或4键\n");
sb.append(" 右移:右方向键或6键\n").append(" 下移:下方向键或8键\n");
sb.append(" 上移:上方向键或2键\n").append(" 着棋:中心键或5键\n");
sb.append("2.游戏说明:\n").append(" 本游戏为我老婆而作,\n");
sb.append(" 版权所有,若需要源码\n").append(" 请联系QQ 271976001\n");
sb.append("3.游戏作者:\n").append(" 肖昶\n");
sb.append("4.游戏版本:\n").append(" Version 1.0.1\n");
sb.append(" 美化了游戏界面\n").append(" 修正了一些连接Bug\n").append(" 2008-12-07\n");
alt.setString(sb.toString());
alt.setTimeout(Alert.FOREVER);
FiveGame.display.setCurrent(alt, this);
}
}
// 返回本类的实例
public static final MainMenu getInstance() {
if (instance == null)
instance = new MainMenu();
selected = 0;
return instance;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -