如何使用JME在另一个表单内调用表单

时间:2012-02-23 05:29:20

标签: java-me midp lcdui

我正在尝试学习J2ME,我遇到了表单问题。我的问题是我有两种形式,一种是“主”形式和一种“问候”形式。我无法弄清楚如何从'main'表单中调出'问候'表单。我想要一旦midlet发射;问候表格由主表格直接调用。我的代码示例如下所示。

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

import javax.microedition.lcdui.*;

public class greetingsClass {

public Display greetingsDisplay;
public Form loginform;

public void login()
{
    loginform = new Form("Login Class Form");
    loginform.append("Ok! Iside login Classs form");
    greetingsDisplay = Display.getDisplay(this);
    greetingsDisplay.setCurrent(loginform);

}
}

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

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

public class FormMIDlet extends MIDlet {

public Display FormMIDletdisplay;
public Form MainMIDletform;
public LoginClass LoginFormObject;

public void startApp() {
MainMIDletform = new Form("Main Class Form");
MainMIDletform.append("Calling LoginClass Form");
FormMIDletdisplay = Display.getDisplay(this);
FormMIDletdisplay.setCurrent(MainMIDletform);

}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
}

我想在代码的第一部分(greetingsClass.java)中使用表单  在第二部分中显示,这是midlet的主要形式(FormMIDlet.java)。

1 个答案:

答案 0 :(得分:3)

我希望此代码可以帮助您:

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元素,而Display类抽象实际设备屏幕的显示功能并使其可供您使用。它提供了获取有关屏幕的信息以及显示或更改要显示的当前UI元素的方法。因此,MIDlet使用Display类的setCurrent(Displayable元素)方法在Display上显示可显示的UI元素。可显示的类实现Displayable接口。
可显示对象是能够放置在显示器上的对象 参考文献:
MIDP GUI Programming
J2ME Tutorial