Java me 如何使用JME在另一个表单中调用表单

Java me 如何使用JME在另一个表单中调用表单,java-me,midp,lcdui,Java Me,Midp,Lcdui,我正在努力学习J2ME,但我对表单有问题。我的问题是我有两种形式,一种是“主”形式,另一种是“问候”形式。我不知道如何从“主”窗体调用“问候”窗体。我想要一旦midlet启动;问候语表单由主表单直接调用。下面是我的代码示例 此代码用于问候语表单(greetingsClass.java) 此代码用于主窗体(FormMIDlet.java) 我希望表单出现在代码的第一部分(greetingsClass.java) 第二部分是midlet的主要形式(FormMIDlet.java)。我希望这段代码能帮

我正在努力学习J2ME,但我对表单有问题。我的问题是我有两种形式,一种是“主”形式,另一种是“问候”形式。我不知道如何从“主”窗体调用“问候”窗体。我想要一旦midlet启动;问候语表单由主表单直接调用。下面是我的代码示例

此代码用于问候语表单(greetingsClass.java)

此代码用于主窗体(FormMIDlet.java)

我希望表单出现在代码的第一部分(greetingsClass.java)

第二部分是midlet的主要形式(FormMIDlet.java)。

我希望这段代码能帮助您:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;


public class myMidlet extends MIDlet implements CommandListener {

    private Form greetings;
    private Form MainForm;
    private Command okCommand;
    Display display;

    public myMidlet() {
        display = Display.getDisplay(this);
        greetings = new Form("greetings");
        MainForm = new Form("MainForm");
        okCommand = new Command("Ok", Command.OK, 0);
        MainForm.addCommand(okCommand);
        MainForm.setCommandListener(this);
    }

    public void startApp() {
        MainForm.append("This is MainForm");
        display.setCurrent(MainForm);
    }

    public void pauseApp() {
    ...
    }

    public void destroyApp(boolean unconditional) {
    ...
    }

    public void commandAction(Command cmnd, Displayable dsplbl) {
        if (cmnd == okCommand) {
            greetings.append("This is greeting Form");
            display.setCurrent(greetings);
        }
    }
}   
Display类是为每个活动MIDlet实例化的显示管理器,它提供了检索有关设备显示功能信息的方法。通过调用Display.setCurrent()方法,屏幕变得可见。
表单是包含任意混合项(例如图像、文本、文本字段、选项组)的屏幕。表单是屏幕的子项,屏幕实现可显示界面。
可显示类是可以在设备屏幕上显示的UI元素,而显示类抽象实际设备屏幕的显示功能,并使它们对您可用。它提供了获取有关屏幕的信息以及显示或更改要显示的当前UI元素的方法。因此,MIDlet使用Display类的setCurrent(Displayable element)方法在显示器上显示可显示的UI元素。可显示的类实现可显示的接口。
可显示对象是能够放置在显示器上的对象。
参考文献:


我希望这段代码能帮助您:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;


public class myMidlet extends MIDlet implements CommandListener {

    private Form greetings;
    private Form MainForm;
    private Command okCommand;
    Display display;

    public myMidlet() {
        display = Display.getDisplay(this);
        greetings = new Form("greetings");
        MainForm = new Form("MainForm");
        okCommand = new Command("Ok", Command.OK, 0);
        MainForm.addCommand(okCommand);
        MainForm.setCommandListener(this);
    }

    public void startApp() {
        MainForm.append("This is MainForm");
        display.setCurrent(MainForm);
    }

    public void pauseApp() {
    ...
    }

    public void destroyApp(boolean unconditional) {
    ...
    }

    public void commandAction(Command cmnd, Displayable dsplbl) {
        if (cmnd == okCommand) {
            greetings.append("This is greeting Form");
            display.setCurrent(greetings);
        }
    }
}   
Display类是为每个活动MIDlet实例化的显示管理器,它提供了检索有关设备显示功能信息的方法。通过调用Display.setCurrent()方法,屏幕变得可见。
表单是包含任意混合项(例如图像、文本、文本字段、选项组)的屏幕。表单是屏幕的子项,屏幕实现可显示界面。
可显示类是可以在设备屏幕上显示的UI元素,而显示类抽象实际设备屏幕的显示功能,并使它们对您可用。它提供了获取有关屏幕的信息以及显示或更改要显示的当前UI元素的方法。因此,MIDlet使用Display类的setCurrent(Displayable element)方法在显示器上显示可显示的UI元素。可显示的类实现可显示的接口。
可显示对象是能够放置在显示器上的对象。
参考文献:


在MIDP2API中,无法将一个表单放入另一个表单中。当屏幕需要更改时,通常只是用另一个表单“覆盖”一个表单。另外,您的代码片段的这部分无法编译-
greetingsDisplay=Display.getDisplay(this)
-您检查了吗?谢谢,但我是个新手。我不知道前进的方向。我如何“覆盖”?你想要的是荒谬的,因为你只需打开问候表单。此外,在j2me中,您不能打开一个小表单来执行登录。@Ukavi要执行我提到的“覆盖”,只需获取一个可从
FormMIDlet
访问的greetingsDisplay.loginform实例(这些是Java基础知识),然后调用
formmidledisplay.setCurrent
,并将此实例作为参数传递。因此,您的设备将显示登录表单在MIDP2API中无法将一个表单放入另一个表单中。当屏幕需要更改时,通常只是用另一个表单“覆盖”一个表单。另外,您的代码片段的这部分无法编译-
greetingsDisplay=Display.getDisplay(this)
-您检查了吗?谢谢,但我是个新手。我不知道前进的方向。我如何“覆盖”?你想要的是荒谬的,因为你只需打开问候表单。此外,在j2me中,您不能打开一个小表单来执行登录。@Ukavi要执行我提到的“覆盖”,只需获取一个可从
FormMIDlet
访问的greetingsDisplay.loginform实例(这些是Java基础知识),然后调用
formmidledisplay.setCurrent
,并将此实例作为参数传递。因此,您的设备将显示该登录表单
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.*;


public class myMidlet extends MIDlet implements CommandListener {

    private Form greetings;
    private Form MainForm;
    private Command okCommand;
    Display display;

    public myMidlet() {
        display = Display.getDisplay(this);
        greetings = new Form("greetings");
        MainForm = new Form("MainForm");
        okCommand = new Command("Ok", Command.OK, 0);
        MainForm.addCommand(okCommand);
        MainForm.setCommandListener(this);
    }

    public void startApp() {
        MainForm.append("This is MainForm");
        display.setCurrent(MainForm);
    }

    public void pauseApp() {
    ...
    }

    public void destroyApp(boolean unconditional) {
    ...
    }

    public void commandAction(Command cmnd, Displayable dsplbl) {
        if (cmnd == okCommand) {
            greetings.append("This is greeting Form");
            display.setCurrent(greetings);
        }
    }
}