Aクラスが拡張されているForm
か、AクラスがDisplayable
である場合、[戻る]コマンドで、と言うことができますswitchDisplayable(null, a)
。
Aクラスがではない場合は、Form
Aクラスに次のメソッドがあることを確認してください。
public Form getFormA() {
return ...; // return the `Form` here so you will not get NullPointerException
}
アップデート:
NetBeansを使用している場合は、「フロー」タブを開きbackCommand
、formBからformAにドラッグできます。NetBeansは、必要なコードを生成します。

手作業でコーディングすると、次のようになります。
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class ExampleMidlet extends MIDlet {
private Display display;
private Form formA;
private Form formB;
private Command formA_next;
private Command formB_back;
public void startApp() {
if (display==null) {
display = Display.getDisplay(this);
formA = new Form("Form A");
formA_next = new Command("Next", Command.SCREEN, 0);
formA.addCommand(formA_next);
formA.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
if (c==formA_next) {
display.setCurrent(formB);
}
}
});
formB = new Form("Form B");
formB_back = new Command("Back", Command.BACK, 0);
formB.addCommand(formB_back);
formB.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
if (c==formB_back) {
display.setCurrent(formA);
}
}
});
}
display.setCurrent(formA);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
をどのようにコーディングするかはわかりませんForm
が、そうa
ですnull
。多分あなたは私に完全なコードを見せてくれるでしょう。this
通常、コンストラクターを渡すことはお勧めしません。ちなみに、あなたはまだMIDlet
正しく拡張する「メイン」クラスが必要ですか?次に、次のような3つのクラスがあります。
ExampleMiddlet.javastartApp()
(これは、、などのMIDletライフサイクルを配置する場所ですpauseApp()
):
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class ExampleMidlet extends MIDlet {
private Display display;
private Form formA, formB;
public void startApp() {
if (display==null) {
display = Display.getDisplay(this);
formA = new FormA(this);
formB = new FormB(this);
}
display.setCurrent(formA);
}
public Form getFormA() {
return formA;
}
public Form getFormB() {
return formB;
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
FormA.java(これはあなたがあなたのコンテンツを置く場所ですForm
):
import javax.microedition.lcdui.*;
public class FormA extends Form {
private Command cmdNext;
public FormA(final ExampleMidlet midlet) {
super("Form A");
append("This is form A.");
cmdNext = new Command("Next", Command.SCREEN, 0);
addCommand(cmdNext);
setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
Display.getDisplay(midlet).setCurrent(midlet.getFormB());
}
});
}
}
FormB.java(これはあなたがあなたのコンテンツを置く場所ですForm
):
import javax.microedition.lcdui.*;
public class FormB extends Form {
private Command cmdBack;
public FormB(final ExampleMidlet midlet) {
super("Form B");
append("This is form B.");
cmdBack = new Command("Back", Command.SCREEN, 0);
addCommand(cmdBack);
setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
Display.getDisplay(midlet).setCurrent(midlet.getFormA());
}
});
}
}