在 J2ME 開發中,可以將多個 MIDlet 程式封裝在同一個 JAR 檔案中。裝置會自動顯示一個 MIDlet 選單,讓使用者選擇要執行哪一個 MIDlet。本文提供完整範例,包含兩個簡易 MIDlet 的原始碼、Manifest 檔案、JAD 描述檔、圖示檔案,以及用於編譯、預驗證、建立 JAR 的 DOS 批次檔。
/*----------------------------------------------------
* Simple MIDlet 1
*---------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet1 extends MIDlet implements CommandListener {
private Display display;
private TextBox tbxMain;
private Command cmdExit;
public MIDlet1() {
display = Display.getDisplay(this);
cmdExit = new Command("Exit", Command.SCREEN, 1);
tbxMain = new TextBox("Welcome", "Core J2ME", 50, 0);
tbxMain.addCommand(cmdExit);
tbxMain.setCommandListener(this);
}
public void startApp() {
display.setCurrent(tbxMain);
}
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
public void commandAction(Command c, Displayable s) {
if (c == cmdExit) {
destroyApp(false);
notifyDestroyed();
}
}
}
/*----------------------------------------------------
* Simple MIDlet 2
*---------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MIDlet2 extends MIDlet implements CommandListener {
private Display display;
private Form frmMain;
private TextField txfName;
private Command cmdExit;
public MIDlet2() {
display = Display.getDisplay(this);
cmdExit = new Command("Exit", Command.SCREEN, 1);
txfName = new TextField("Name:", "", 10, TextField.ANY);
frmMain = new Form("Sample Form");
frmMain.addCommand(cmdExit);
frmMain.append(txfName);
frmMain.setCommandListener(this);
}
public void startApp() {
display.setCurrent(frmMain);
}
public void pauseApp() { }
public void destroyApp(boolean unconditional) { }
public void commandAction(Command c, Displayable s) {
if (c == cmdExit) {
destroyApp(false);
notifyDestroyed();
}
}
}
MIDlet-Name: TwoMIDlets
MIDlet-Version: 1.0
MIDlet-Vendor: Core J2ME Technology
MIDlet-1: MIDlet1,/image1.png, MIDlet1
MIDlet-2: MIDlet2,/image2.png, MIDlet2
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-Name: TwoMIDlets
MIDlet-Version: 1.0
MIDlet-Vendor: Core J2ME Technology
MIDlet-Description: Packaging multiple MIDlets
MIDlet-Jar-URL: MIDlet.jar
MIDlet-Jar-Size: 3144
MIDlet-1: MIDlet1,/image1.png, MIDlet1
MIDlet-2: MIDlet2,/image2.png, MIDlet2
從左至右依序為:
Manifest 與 JAD 檔案中的 MIDlet-1、MIDlet-2 等屬性必須完全相同。
若不需要圖示,可留空:
MIDlet-1: MIDlet1,, MIDlet1
MIDlet-2: MIDlet2,, MIDlet2
MIDlet-Description 屬性在 JAD 中為可選。
本範例基於 MIDP 1.0.3 與 CLDC 1.0.3 版本。