dúvida com forms em JME

Pessoal, é o seguinte.
Estou treinando uma aplicaçãozinha que chama dois forms.
O problema é na hora de voltar que está dando errado
Na primeira vez volta, mas se tentar voltar para o primeiro form da esse erro

java.lang.IllegalStateException

Codigo

public class TestMidlet extends MIDlet implements CommandListener {
	private Form formPrincipal,formSecundario, formTerciario
	public static Display display;
	private Command comandoFormSecundario,comandoFormTerciario,voltar;


	public TestMidlet() {
		TestMidlet.display = Display.getDisplay(this);
		formPrincipal = new Form("PRINCIPAL");
		formSecundario = new Form("Form 2");
		formTerciario = new Form("Form 3");
                comandoFormSecundario = new Command("Abrir Form Secundario, Command.ITEM, 0);
                comandoFormTerciario = new Command("Abrir Form Terciario, Command.ITEM, 1);
		voltar = new Command("Voltar", Command.BACK, 0);
	}

protected void startApp() throws MIDletStateChangeException {
		this.carregarFormPrincipal();
	}

public void commandAction(Command c, Displayable d){
         if(c == formSecundario){
            this.carregarFormSecundario)
         }
         if(c == formTerciario){
            this.carregarFormTerciario)
         }
         if(c==voltar){
            display.setCurrent(formPrincipal);
         }
     
}

private void carregarFormPrincipal() {
		formPrincipal.addCommand(comandoFormSecundario);
                formPrincipal.addCommand(comandoFormTerciario)
                formPrincipal.addCommand(voltar);
		formPrincipal.setCommandListener(this);
		display.setCurrent(formPrincipal);
}


private void carregarFormSecundario() {
		formSecundario.addCommand(voltar);
		formSecundario.setCommandListener(this);
		display.setCurrent(formSecundario);
}


private void carregarFormTerciario() {
		formTerciario.addCommand(voltar);
		formTerciario.setCommandListener(this);
		display.setCurrent(formTerciario);
}

vc pode tentar esse codigo…aproveitei o seu e modifiquei algumas coisas… acho q ficou elegante: :idea:
tente optimizar seu codigo […]

import javax.microedition.lcdui.;
import javax.microedition.midlet.
;

public class TestMIDlet extends MIDlet implements CommandListener {  
    private Form formPrincipal,formSecundario, formTerciario;  
    public static Display display;  
    private Command comandoFormSecundario,comandoFormTerciario,voltar;  
  
  
    public TestMIDlet() {  
        display = Display.getDisplay(this);  
        formPrincipal = new Form("PRINCIPAL");  
        formSecundario = new Form("Form 2");  
        formTerciario = new Form("Form 3");  
                
        comandoFormSecundario = new Command("Abrir Form Secundario", Command.ITEM, 0);  
        comandoFormTerciario = new Command("Abrir Form Terciario", Command.ITEM, 1);  
        voltar = new Command("Voltar", Command.BACK, 0);  
    }  
  
protected void startApp() throws MIDletStateChangeException {  
        carregarForm(formPrincipal,comandoFormSecundario,comandoFormTerciario);  
    }  
  
public void commandAction(Command c, Displayable d){
	String str_co = c.getLabel();
         if(str_co.equals("Abrir Form Secundario")){  
            this.carregarForm(formSecundario,voltar,null);  
         }  
         if(str_co.equals("Abrir Form Terciario")){  
            this.carregarForm(formTerciario,voltar,null);  
         }  
         if(str_co.equals("Voltar")){  
        	 carregarForm(formPrincipal,comandoFormSecundario,comandoFormTerciario);
         }            
}  
        
private void carregarForm(Form form, Command cmd1, Command cmd2) {  
        form.addCommand(cmd1);
        if(cmd2!=null)
        	form.addCommand(cmd2);  
        form.setCommandListener(this);  
        display.setCurrent(form);  
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	// TODO Auto-generated method stub
	
}

protected void pauseApp() {
	// TODO Auto-generated method stub
	
}  

}

Mas como eu posso fazer para que em cada form(supondo que eu quera mais) tenha vários textField, Command, String item, etc.
Desse jeito dá muito trabalho, não acha?

achei q vc estava apenas testando Paula, entao precisa ver o projeto como um todo…

O que vc quer fazer?

Dependendo do projeto, vc pode fazer classes extendidas da classe Form, ai entao vc pode estruturar melhor sua aplicação, eu entendi…se vc quer detalhes posso te ajudar me da mais detalhes do seu projeto pra eu te ajudar…

vc pode criar 03 classe:

  • FormPrincipal;
  • FormSecundario;
  • FormTerciario;

e 01 classe MIDlet:
ex.:

  • PaulaMIDlet;

Com isso o codigo vai ficar bem limpo e estruturado.

é apenas um exemplo rapido, espero que seja útil… por favor poste… preciso saber se gostou? eu pensei em um aplicativo para locadora de DVD… :shock:

:shock:

As Imagens



jad e jar :twisted: já testei nos meus celulares ta rodando normal. “samsung”

Muito bom dj++!!

Testei no meu sansung e rodou legal.
Vou estudar um pouco, estou começando a ver JME e não tinha muita idéia de como fazer a ui e o seu proj vai me ajudar muito com essa parte .

olha só Luiz renato…eu criei esse exemplo apenas pra mostrar uma maneira fácil de gerenciar objetos Form, se vc quer desenvolver um projeto mais complexo…precisa de algo mais estruturado blz!!! Porém pra começar é um exemplo bom…
qualquer duvida estou a disposicao…ok