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

📄 mainmenu.java

📁 J2ME的游戏原代码!希望能帮助有需要帮助的师兄弟们!..
💻 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 + -