Ajuda troca de tela

2 respostas
R

Pessoal, estou começando a aprender J2ME. Criei 2 arquivos onde um é de apresentação e outro entrada de dados. Quando tento sair de uma classe e mostrar a outra não esta funcionado, esta fazendo a troca como se fosse criando uma outra aplicação. Como eu devo fazer a troca de tela utilizando outras classe?

O meu código é:

/* Tela de Apresentação <em>/

import javax.microedition.midlet.</em>;

import javax.microedition.lcdui.*;
public class OlaMundo extends MIDlet implements CommandListener {

Display tela;

Command sair,seguir;

StringItem strItem;

Form frmApres;

Login login;

public OlaMundo(){

tela = Display.getDisplay(this);

frmApres = new Form(Apresentação);

strItem = new StringItem("  Teste de J2ME\n  Tela de Login","");

sair = new Command(Sair, Command.SCREEN, 99);

seguir = new Command(Seguir, Command.SCREEN, 1);

frmApres.addCommand(sair);

frmApres.addCommand(seguir);

frmApres.setCommandListener(this);
frmApres.append(strItem);

    }
    public void startApp(){
        tela.setCurrent(frmApres);
    }
    public void pauseApp(){}
    public void destroyApp(boolean unconditional){}
    public void commandAction(Command c, Displayable s){
        if (c == this.sair){
           destroyApp(false);
           notifyDestroyed();
        }
        if(c == this.seguir){
            destroyApp(false);
            notifyDestroyed();
            new Login();
        }
    }

}

/* Primeiro programa J2ME <em>/

import javax.microedition.midlet.</em>;

import javax.microedition.lcdui.*;

public class Login extends MIDlet implements CommandListener {

Display tela;

TextBox areatexto;

Command comando,comando1;

StringItem strItem;

Form frmLogin;

TextField nome,senha;

Teste teste;

public Login(){

tela = Display.getDisplay(this);

frmLogin = new Form(Login);

int numColor = tela.numColors();
comando = new Command("Sair", Command.SCREEN, 99);
        comando1 = new Command("Entrar", Command.SCREEN, 1);
        nome = new TextField("Nome:","",20,TextField.ANY);
        senha = new TextField("Senha:","",20,TextField.ANY);
        frmLogin.addCommand(comando);
        frmLogin.addCommand(comando1);
        frmLogin.setCommandListener(this);


        frmLogin.append(nome);
        frmLogin.append(senha);

    }
    public void startApp(){
        tela.setCurrent(frmLogin);
    }
    public void pauseApp(){}
    public void destroyApp(boolean unconditional){}
    public void commandAction(Command c, Displayable s){
        if (c == this.comando){
           destroyApp(false);
           notifyDestroyed();
        }
    }

}

Estou utilizando o J2ME Wireless Toolkit 1.0.4.

2 Respostas

J

Bom,
o erro é simples.

só pode ter um MIDlet por vez. E um MIDlet não consegue enchergar outro. Então vc não pode fazer as duas herdarem de MIDlet. uma solução rápida e fácil, é passar a referencia da classe MIDlet para a segunda pois assim vc tem como setar o objeto displayable da vez.

fui claro?!

Abraços!

R

Jujo,
se não for abusar muito, tem como vc me mostrar como ficaria nesse código que eu. Ainda não peguei o jeito de OO.

[]'s

Criado 23 de fevereiro de 2005
Ultima resposta 24 de fev. de 2005
Respostas 2
Participantes 2