Java me 诺基亚E72上J2ME中的LWUIT存在问题

Java me 诺基亚E72上J2ME中的LWUIT存在问题,java-me,nokia,lwuit,Java Me,Nokia,Lwuit,嗯,我正在手机上开发一个应用程序,它将连接到我的电脑,问题是每次我向手机返回URL请求时,它都会在屏幕上显示上一个表单,而不是实际的表单,例如,这就是我的actionListener中的内容: public void actionPerformed(ActionEvent ae) { if (ae.getCommand() == guiaUtil.cSelecionar()) { LoginRemote loginRemote = new LoginRemote();

嗯,我正在手机上开发一个应用程序,它将连接到我的电脑,问题是每次我向手机返回URL请求时,它都会在屏幕上显示上一个表单,而不是实际的表单,例如,这就是我的actionListener中的内容:

public void actionPerformed(ActionEvent ae) {
    if (ae.getCommand() == guiaUtil.cSelecionar()) {
        LoginRemote loginRemote = new LoginRemote();

        try {
            //This is the request, returns true or false, does not affect the form
            loginRemote.login(tLogin.getText(), tPassword.getText());
        } catch (Exception e) {

            GuiaUtil.error(e);
            return;
        }
        guiaUtil.mainApp().startMenu();
    }

}
然后在“guiaUtil.mainApp().startMenu()”中

public void startMenu() {
    if (itemsMenu == null) {
        itemsMenu = new List();
        itemsMenu.setWidth(320);

        itemsMenu.addItem("Sincronize Spots");
        itemsMenu.addItem("Find Spots");
        itemsMenu.addItem("Work");
        itemsMenu.setFocus(true);

        this.addComponent(itemsMenu);
        this.addCommandListener(this);
        this.addCommand(guiaUtil.cSelect());
        Form form = new Form();
        form.addComponent(itemsMenu);

    }
    form.show();

}

无论如何,在请求返回后,它再次显示我的登录表单,而不是显示菜单列表

不确定在
loginRemote.Login(tLogin.getText(),tPassword.getText())中发生了什么;
如果您访问网络,我会将该部分放到另一个线程中。 “远程登录”完成后,通过某种回调通知主线程,
然后可以从edt中显示菜单表单。

不确定
loginRemote.login(tLogin.getText(),tPassword.getText())中发生了什么;
如果您访问网络,我会将该部分放到另一个线程中。 “远程登录”完成后,通过某种回调通知主线程,
您可以从edt显示菜单格式。

您必须将以下代码置于if条件之外

Form form = new Form();
form.addComponent(itemsMenu);

您有两种形式的对象。一个在if内部,另一个在if外部。在循环中创建的对象将丢失内部的作用域。您正在if外部显示窗体对象。这就是为什么没有显示菜单列表屏幕的原因

您必须将以下代码置于if条件之外

Form form = new Form();
form.addComponent(itemsMenu);

您有两种形式的对象。一个在if内部,另一个在if外部。在循环中创建的对象将丢失内部的作用域。您正在if外部显示窗体对象。这就是为什么没有显示菜单列表屏幕的原因

可能发生的情况是,您得到一个异常,使用
GuiaUtil.error处理它,然后从
actionPerformed
返回,而不调用
startmenus


我会在try/catch块中移动
guiaUtil.mainApp().startMenu()

可能发生的是,您得到了一个异常,使用
guiaUtil.error处理它,然后从
actionPerformed
返回,而不调用
startMenu

我将在try/catch块中移动
guiaUtil.mainApp().startMenu()