J2ME (Java 2 Micro Edition) 透過 Configuration (CLDC) 定義 JVM/核心庫子集,搭配 Profile (MIDP) 提供裝置專用 API,構建行動裝置開發平台。本文以 HelloMIDlet 為例,解析 MIDP 應用結構、生命週期、事件處理與 UI 元件分類。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloJ2ME extends MIDlet implements CommandListener {
private Display display;
private Form form;
private Command exitCmd;
public HelloJ2ME() {
display = Display.getDisplay(this);
form = new Form("Hello J2ME");
form.append("Hello World!");
exitCmd = new Command("Exit", Command.EXIT, 1);
form.addCommand(exitCmd);
form.setCommandListener(this);
}
protected void startApp() { display.setCurrent(form); }
protected void pauseApp() { }
protected void destroyApp(boolean unconditional) { notifyDestroyed(); }
public void commandAction(Command c, Displayable d) {
if (c == exitCmd) destroyApp(true);
}
}
| 方法 | 觸發時機 | 用途 |
|---|---|---|
startApp() | 應用啟動、從暫停恢復 | 初始化 UI、取得資源,**非**僅首次啟動呼叫 |
pauseApp() | 來電、切換應用、系統事件 | 釋放資源、儲存狀態 |
destroyApp(boolean) | 使用者結束、系統回收 | 清理資源、關閉連線,**僅呼叫一次** |
輔助通知方法:notifyDestroyed()、notifyPaused()、resumeRequest()、getAppProperty()
Form:容器,可放入 Item 元件Alert:對話框、提示List:單選/多選清單TextBox:多行文字輸入TextField、ChoiceGroup、DateField、Gauge、ImageItem、StringItemCommand:軟鍵功能鍵Ticker:跑馬燈文字Graphics:低階繪圖Choice 介面Display 實例:Display.getDisplay(this)setCurrent(Displayable) 切換畫面、getCurrent() 取得當前畫面isColor()、numColors()、getWidth/Height().jar + .jad (描述檔) 透過 OTA 下載安裝掌握 MIDlet 生命週期、Command/Listener 事件模型、三大 UI 家族與 Display 管理,即可開發基本 MIDP 應用。實務上仍需針對目標手機測試相容性,善用模擬器與真機除錯。