在J2ME中使用LWUIT库。如何拨打另一张表格?

时间:2011-07-04 09:58:14

标签: java-me lwuit

如何拨打另一张表格?当我使用form.show()方法时,不会显示其他表单的组件 示例......

FirstForm.java

public class FirstForm extends MIDlet implements ActionListener
{
    Form frm_first = new Form("First");
    public Command cmd_Login;
    public void startApp()
    {
        Display.init(this);
        cmd_Login = new Command("Login");
        frm_first.addComponent(cmd_login);
        ......
    }
    public void pauseApp() {}

    public void destroyApp(boolean unconditional) {}

    public void actionPerformed(ActionEvent ae)
    {
        Command cmd = ae.getCommand();
        String strcmdName = cmd.getCommandName();

        if (strcmdName.equals("Login"))
        {
             //how to call Login Form
        }
    }
} 

Login.java

public class Login extends Form implements ActionListener
{
     Form frm_Login = new Form("Login");
     Button btn_Login = new Button("Login");
     public Login()
     {
       ....
      . ....
     }
}

4 个答案:

答案 0 :(得分:2)

首先,您必须在类FirstForm中创建Form。 像Form frm=new Form("First Form");一样 然后以frm.addCommand(cmd_Login);之类的形式添加命令cmd_Login 然后将命令Listener设置为frm.setCommandListener(this); &安培;需要在FirstForm而不是ActionListener中implements CommandListener。 然后在public void commandAction(Command c, Displayable d) {现在你必须编写代码去第二个Form。 &安培;我在你的登录课中注意到的一件事,你总是扩展课程形式&还在Login类中创建Form对象...如果您正在使用扩展类Form,则不要创建Form对象。 感谢

答案 1 :(得分:1)

只需使用

new Login().show();

答案 2 :(得分:0)

在实现监听器之后,我发现从另一个窗体中调用表单的最佳方法是使用它:showForm("name of Form", null);

调用另一个表单的另一种方法是,但是在组件操作中:showContainer("name of Form",c, null);

答案 3 :(得分:0)

在Display.init(this)之前调用此行;因此,你得到一个例外,没有任何作用。

Form frm_first = new Form("First");

Display.init(this)代码之后移动初始化代码。