Duvida Sobre passagem de form

6 respostas
M

Boa noite.

Estou estudando Java Me e me surgiu algumas duvidas

O código esta abaixo:

Midlet

public class ForcaVendaMidlet extends MIDlet implements ActionListener {
    public void startApp() 
    {
        Display.init(this);
        frmLogin login = new frmLogin();
        login.show();

    }

    public void pauseApp()
    {

    }

    public void destroyApp(boolean unconditional)
    {
        
    }

    public void actionPerformed(ActionEvent arg0)
    {


    }
}

Form Com o Login do Usuario:

public class frmLogin extends Form implements ActionListener
{
    Label lbUsuario = null;
    Label lbSenha   = null;
    TextField tfUsuario = null;
    TextField tfSenha = null;
    Command exitCommand = null;
    GridLayout Layout = null;
    Container container = null;

    /**
     * Construtor Da Classe
     */
    public frmLogin( )
    {
        super("Forca Venda");

        lbUsuario = new Label("Usuario:");
        lbSenha   = new Label("Senha:");

        tfUsuario = new TextField(15);
        tfSenha   = new TextField(15);


    }

    public void show()
    {
        super.show();
        GuiLogin();
        
    }

    public void GuiLogin()
    {
        exitCommand = new Command("Sair");

        this.addCommand(exitCommand);

        Layout = new GridLayout(2, 2);

        container = new Container(Layout);
        container.addComponent(lbUsuario);
        container.addComponent(tfUsuario);
        container.addComponent(lbSenha);
        container.addComponent(tfSenha);

        this.addComponent(container);
    }

    public void actionPerformed(ActionEvent event)
    {
        if(exitCommand == event.getSource())
        {

        }

    }

}

Minhas duvidas são.

  1. Como chamar outro form e retirar esse da memoria.
  2. Como apartir desse form (frmLogin) fechar a aplicação.

Procurei essas informações na documentação oficial do LWUIT sem sucesso.
Obrigado pela Ajuda!!

6 Respostas

F

Acho que posso te ajudar, apesar de não conhecer muito LWUIT.

  1. Passe a MIDlet para essa segunda classe ‘frmLogin’ (que por convenção em java nomes de classe a primeira letra em maisculo).
  2. Quando o evento for disparado na classe ‘frmLogin’ Você pode criar outro form ou sair da aplicação chamando o método midlet.notifyDestroyed();
V

O Fabio te respondeu bem. Passa o midlet para tua classe form. E faz chamadas na classe form (frmLogin) aos métodos do midlet. Aconselho fazer métodos públicos no Teu Midlet (ForcaVendaMidlet), que retorne os outros forms (outras telas), por exemplo

public frmLogin getFrmLogin() { frmLogin frmLogin = new frmLogin(this); return frmLogin; }

Assim tu pode chamar esta tela com

M

Boa noite.

Obrigado Fabio e Vingard pelas respostas :smiley:

Uma duvida que ficou foi como destruir esses forms.
Por exemplo o Form de login (FormLogin) eu irei precisar dele apenas uma vez.
Apenas um Null resolver isso?

formLogin = null;

Qual a melhor maneira de lidar com isso?

abraços!

Felipe_FM_Mobile

Além de apontar null, nas minhas aplicações eu rodo runtime.rc(); para indicar para o garbage colector.

Abs

Felipe

P

Em se tratando de JavaME, você pode SUGERIR ao Garbage Collector que libere memória, com System.gc().
Detalhes no javadoc ou no Google mais perto de vc.

M

Boa noite.

Obrigado pelas respostas. vou procurar mais Informações sobre a chamada ao GC.

Abraços a todos!!

Criado 26 de outubro de 2010
Ultima resposta 30 de out. de 2010
Respostas 6
Participantes 5