Galera eu tenho esse codigo aí:
package Negocios;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;
import ControladorMobile.Cgm;
import Flash.CgmCamBra;
import Flash.CgmSenErr;
import Flash.CgmUsuCadSuc;
public class CgmCadUsu extends Form implements CommandListener {
private Cgm cgm;
private CgmMenUsu cgmMenUsu;
private CgmCamBra cgmCamBra;
private CgmMenu cgmMen;
private Command cmdVoltar = new Command("Voltar", Command.BACK, 1);
private Command cmdCadastrar = new Command("Cadastrar", Command.SCREEN, 1);
private CgmUsuCadSuc cadSuc = null;
private CgmSenErr senhaError = null;
private TextField nome = null;
private TextField senha = null;
private TextField senhaNov = null;
CgmGerenciadorDisplay gd = null;
public CgmCadUsu(Cgm cgm) {
super("Cadastro de Usuário");
cadSuc= new CgmUsuCadSuc(cgm);
cgmCamBra = new CgmCamBra(cgm);
senhaError = new CgmSenErr(cgm);
cgmMenUsu = new CgmMenUsu(cgm);
cgmMen = new CgmMenu(cgm);
gd = CgmGerenciadorDisplay.getInstancia();
nome = new TextField("Nome","",10,TextField.ANY);
senha = new TextField("Senha","",10,TextField.PASSWORD);
senhaNov = new TextField("Senha Novamente","",10,TextField.PASSWORD);
this.setCommandListener(this);
this.cgm = cgm;
init();
System.out.println("Construtor");
}
public void init(){
append(nome);
append(senha);
append(senhaNov);
this.addCommand(cmdVoltar);
this.addCommand(cmdCadastrar);
System.out.println("Acionando o Metodo Init");
}
/*
public boolean salvarUsuario(String nomeUsuario,String senhaUsuario) {
nomeUsuario = nome.getString();
senhaUsuario = senha.getString();
String senhaUsuario2 = senhaNov.getString();
if(senhaUsuario.equals("") ){
}
}*/
public void commandAction(Command c, Displayable d) {
if(c==cmdVoltar){
gd.setMIDlet(cgm);
gd.exibir(cgmMen);
}else{
if(nome.getString().equals("") || senha.getString().equals("") || senhaNov.getString().equals("")){
Display.getDisplay(cgm).setCurrent(cgmCamBra);
}else{
if(senha.getString() != "" && senha.getString().equals(senhaNov.getString())){
Display.getDisplay(cgm).setCurrent(cadSuc,cgmMenUsu);
}else{
if(senha.getString() != senhaNov.getString()){
Display.getDisplay(cgm).setCurrent(senhaError);
}
}
}
}
}
}
package Negocios;
import java.util.Stack;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
public class CgmGerenciadorDisplay {
private static CgmGerenciadorDisplay instancia;
private MIDlet midlet;
private Display display;
private Stack stack = new Stack();
private CgmGerenciadorDisplay() {
}
public static CgmGerenciadorDisplay getInstancia() {
if (instancia==null) {
instancia = new CgmGerenciadorDisplay();
}
return instancia;
}
public void setMIDlet(MIDlet midlet) {
this.midlet = midlet;
this.display = Display.getDisplay(midlet);
}
public void exibir(Displayable tela) {
this.stack.push(tela);
this.display.setCurrent(tela);
}
public void voltar() {
// remove o ultimo elemento
this.stack.pop();
// exibe o elemento no topo atual
Displayable telaAtual = (Displayable)this.stack.peek();
this.display.setCurrent(telaAtual);
}
}
package Negocios;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import ControladorMobile.Cgm;
public class CgmMenu extends List implements CommandListener {
private Cgm cgm;
private CgmCadUsu cgmCadUs = null;
static String cadUs = "Cadastro de Usuario";
static String logUs = "Login de Usuario";
static String sair = "Sair";
private static String [] menu = new String[]{cadUs,logUs,sair};
public CgmMenu(Cgm cgm) {
super("Menu",List.IMPLICIT,menu,null);
this.cgm = cgm;
setCommandListener(this);
cgmCadUs = new CgmCadUsu(cgm);
//cgmLogUs = new CgmLoginUsuario(cgm);
// TODO Auto-generated constructor stub
}
public void init(){
}
public void commandAction(Command c, Displayable d) {
switch (this.getSelectedIndex()) {
case 0:
Display.getDisplay(cgm).setCurrent(cgmCadUs);
break;
case 1:
break;
case 2:
this.cgm.notifyDestroyed();
break;
}
}
}
Porque quando eu coloco cgmMenuUsu a tecla voltar funciona normal ela vai para o cgmMenUsu mas quando eu coloco o cgmMen, e eu coloco para rodar ele trava.