首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

Eclipse 開發 J2ME 手機遊戲入門講座(五):J2ME 應用程式真機發布實戰

     編輯:J2ME

第五講:J2ME 應用程式真機發布

專案設計:整蠱專家 V1.0

功能:啟動顯示版權資訊 → 使用者輸入編號 → 顯示對應短訊內容 → 支援重複查詢與退出。

完整程式碼實作

package demo;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class Test extends MIDlet implements CommandListener {
    private TextBox textbox;
    private Display disp;
    private Command cmdExit, cmdOK;
    private Alert alt;

    public Test() {
        super();
        disp = Display.getDisplay(this);
        cmdExit = new Command("退出", Command.SCREEN, 1);
        cmdOK = new Command("閱讀", Command.OK, 1);
        textbox = new TextBox("請輸入待閱項目序號:", "", 40, 0);
        textbox.addCommand(cmdExit);
        textbox.addCommand(cmdOK);
        textbox.setCommandListener(this);
    }

    protected void startApp() throws MIDletStateChangeException {
        alt = new Alert("整蠱專家 V1.0");
        alt.setString("==== 整蠱專家 V1.0 ====\n郎銳2004年作版權所有(C) 2004-2005");
        alt.setType(AlertType.INFO);
        alt.setTimeout(Alert.FOREVER);
        disp.setCurrent(alt, textbox);
    }

    protected void pauseApp() {}
    protected void destroyApp(boolean arg0) {}

    public void commandAction(Command cmd, Displayable d) {
        if (cmd == cmdExit) {
            destroyApp(false);
            notifyDestroyed();
        } else if (cmd == cmdOK) {
            TextBox tb = (TextBox) d;
            String input = tb.getString();
            if (input.matches("[1-5]")) {
                String[] msgs = {
                    "一兄弟脾氣甚……",
                    "豬的四大願望……",
                    "春風裡,百花下……",
                    "為什麼……",
                    "昨夜做了……"
                };
                alt.setString(msgs[Integer.parseInt(input)-1]);
                alt.setTitle("您正在閱讀短信" + input);
            } else {
                alt.setString("很抱歉,暫時還沒有您選擇的項目,請重新輸入!");
                alt.setTitle("錯誤警告");
            }
            alt.setType(AlertType.INFO);
            alt.setTimeout(Alert.FOREVER);
            disp.setCurrent(alt, textbox);
        }
    }
}

關鍵技術點解析

  • MIDlet 生命週期:暫停 → 活動 → 停止。狀態切換由手機系統決定(來電自動暫停等)。
  • Alert 永久顯示:setTimeout(Alert.FOREVER) 需按鍵確認才離開,適合版權頁、選單。
  • CommandListener 介面:addCommand() 後必須 setCommandListener() 才會響應。
  • 字串比較:必須用 equals(),不可用 ==。
  • Eclipse 即時錯誤修正:滑鼠移至錯誤圖示雙擊,接受建議自動修正。
    Eclipse 錯誤建議

模擬器測試與廠商 SDK 使用

建議使用目標手機廠商 SDK 測試。截圖為 Sony Ericsson J2ME SDK (WTK 1.0.4) + T630 模擬器:
Sony Ericsson 模擬器運行

流程:程式清單選中 → Launch → 版權頁 → Done → 輸入編號 → 閱讀 → 顯示內容 → Done 返回 → 重複或退出。

打包發布真機

  1. Navigator 雙擊 Test.jad 開啟 JAD 編輯器,切換到 Midlets 分頁,確認 MIDlet 定義(名稱、類別、圖示)。圖示需為 PNG 格式。
    JAD 編輯器 Midlets 分頁
  2. 專案右鍵 J2ME → Create Package。
    Create Package 選單
  3. EclipseMe 自動在專案目錄 deployed 資料夾產生 Test.jad、Test.jar。
    打包輸出
  4. 透過數據線、紅外、藍牙將 Test.jar 上傳至支援 Java 的手機安裝運行。

小結

已實現真正可在手機運行的 J2ME 程式。開發流程並不神秘,投入創意即可開發更強大、更美觀的應用。下一講將在此基礎上實作圖形化手機遊戲。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved