В J2ME используется библиотека LWUIT. Как позвонить в другую форму? - PullRequest
1 голос
/ 04 июля 2011

Как позвонить в другую форму?Когда я использовал 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 ]

2 голосов
/ 04 июля 2011

Сначала вы должны создать форму в вашем классе FirstForm.Например, Form frm=new Form("First Form");, затем добавьте команду cmd_Login в форму, подобную frm.addCommand(cmd_Login);, затем задайте для команды Listener значение frm.setCommandListener(this);, а в FirstForm должно быть implements CommandListener, а не ActionListener.тогда в public void commandAction(Command c, Displayable d) { теперь вам нужно написать код, чтобы перейти ко второй форме.& Одна вещь, которую я заметил в вашем классе Login, вы всегда расширяете класс Form, а также создаете объект Form в классе Login ... Если вы используете расширение класса Form, не создавайте Form Object.Спасибо

1 голос
/ 04 июля 2011

просто используйте

new Login().show();
0 голосов
/ 04 февраля 2012

Эта строка вызывается перед Display.init (this);Следовательно, вы получаете исключение, и ничего не работает.

Form frm_first = new Form("First");

Переместите код инициализации после кода Display.init(this).

0 голосов
/ 03 февраля 2012

Лучший способ вызвать форму из другой, после реализации слушателя, это использовать это: showForm("name of Form", null);

Другой способ вызвать другую форму, но внутри действия компонента это: showContainer("name of Form",c, null);

...