Olá pessoal,
Estou apanhando para gerenciar a exibição de Forms na tela. Quando mando executar não dá erro mas também nao aparece nada na tela. Será que tem relação com a forma que estou usando Display?
Tem alguma forma melhor para tratar o CommandListener? Criar uma nova classe fora do midlet???
Sou novato na área e estou tendo muita dificuldade com o J2ME.
Obrigado
[code]import javax.microedition.lcdui.Display;
import javax.microedition.midlet.*;
import javax.microedition.rms.RecordStore;
/**
-
@author Marcos
*/
public class Midlet extends MIDlet {
public FmMain fmmain;
public ProxPg proxform;
public Armazenamento armazen;
public Display display;
public RecordStore basedados = null;public void startApp() {
//
// tentativa de criar um banco global
// try {
// basedados = RecordStore.openRecordStore(“Lista”, true);
// } catch (RecordStoreException ex) {
// ex.printStackTrace();
// }
if (display.equals(null)) {
fmmain= new FmMain(“Principal”, this);
display = Display.getDisplay(this);
}
display.setCurrent(fmmain);
}public void pauseApp() {
}public void destroyApp(boolean unconditional) {
}
}
[/code]
[code]import java.io.IOException;
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.StringItem;
import javax.microedition.lcdui.TextField;
/**
-
@author Marcos
*/
public class FmMain extends Form implements CommandListener {private Command voltar, sair, fazerAcao, proxPg;
private Midlet midlet;
private StringItem nomdig;
Display display = null;
TextField nome = null;public FmMain(String title, Midlet midlet) {
super(title); this.midlet = midlet; midlet.startApp(); display.getDisplay(midlet); display.setCurrent(this); sair = new Command("Sair", Command.EXIT, 3); voltar = new Command("Voltar", Command.OK, 2); this.addCommand(sair); this.addCommand(voltar); //fmMain = new Form("Descrição"); append("Você esta na Universidade de Itauna"); append(nome); append(nomdig); addCommand(sair); addCommand(fazerAcao); addCommand(proxPg); addCommand(voltar); setCommandListener(this);}
public void commandAction(Command c, Displayable d) {
if (d == midlet.fmmain) {
if (c == sair) {
midlet.destroyApp(true);
midlet.notifyDestroyed();
}
if (c == fazerAcao) {
nomdig.setText("\n" + nome.getString());
}
if (c == proxPg) {
try {
midlet.proxform = new ProxPg(“ProxPg”, midlet);
} catch (IOException ex) {
ex.printStackTrace();
}
display.setCurrent(midlet.proxform);} }}
}
[/code]
[code]import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Image;
public class ProxPg extends Form implements CommandListener {
private Command voltar, armazenamento, sair;
private Midlet midlet;
public ProxPg(String title, Midlet midlet) throws IOException {
super(title);
this.midlet = midlet;
sair = new Command("Sair", Command.EXIT, 3);
armazenamento = new Command("Armazenamento", Command.OK, 1);
voltar = new Command("Voltar", Command.OK, 2);
this.addCommand(sair);
this.addCommand(voltar);
this.addCommand(armazenamento);
append(Image.createImage("/brasil.png"));
setCommandListener(this);
}
public void commandAction(Command c, Displayable s) {
if (c == voltar) {
this.deleteAll();
midlet.display.setCurrent(midlet.fmmain);
}
if (c == armazenamento) {
midlet.armazen = new Armazenamento("Armazenamento",midlet);
midlet.display.setCurrent(midlet.armazen);
}
if (c == sair) {
midlet.destroyApp(false);
midlet.notifyDestroyed();
}
}
}
[/code]
[code]import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.ChoiceGroup;
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.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreNotOpenException;
/**
-
@author Marcos
*/
public class Armazenamento extends Form implements CommandListener {private Command cmExit, fazerAcao, voltar, deletar, adicionar;
private StringItem nomdig;
private Alert msg;
private Midlet midlet;
Display display = null;
TextField nome = null;
TextField nomeuser = null;
TextField curso = null;
TextField ID = null;
private StringItem dados = null;
ChoiceGroup opcoes = null;
private RecordStore basedados = null;
public String todosdados;public Armazenamento(String title, Midlet midlet) {
super(title);
this.midlet = midlet;
cmExit = new Command(“Sair”, Command.EXIT, 3);
voltar = new Command(“Voltar”, Command.OK, 2);nome = new TextField("Insira seu nome", "sem nenhum texto", 50, 1); nomeuser = new TextField("Nome do usuário", " ", 50, 1); curso = new TextField("Curso", " ", 50, 1); ID = new TextField("ID (referente ao ID a ser deletado)", " ", 50, 1); dados = new StringItem("Dados Armazenados", ""); setCommandListener(this); append(nomeuser); append(opcoes); append(curso); append(ID); append(dados); addCommand(cmExit); addCommand(voltar); addCommand(adicionar); addCommand(deletar);}
public void consultarbanco() throws RecordStoreNotOpenException, RecordStoreException {
RecordEnumeration re = basedados.enumerateRecords(null, null, false);try { while (re.hasNextElement()) { byte[] data = re.nextRecord(); dados.setText(data.toString()); } } catch (Exception e) { System.out.println("Erro " + e); }}
private void adicionarRegistro() throws RecordStoreNotOpenException, RecordStoreException {
todosdados = nome.getString() + opcoes.getString(opcoes.getSelectedIndex()) + curso.getString(); System.out.println(todosdados); byte[] registro = todosdados.getBytes(); try { basedados = RecordStore.openRecordStore("Lista", true); basedados.addRecord(registro, 0, registro.length); basedados.closeRecordStore(); msg.setString("Registro adicionado com sucesso"); Display.getDisplay(midlet).setCurrent(msg); } catch (Exception e) { System.out.println("Erro " + e); } consultarbanco();}
public void deletar() throws RecordStoreException{
try{
RecordStore rs = RecordStore.openRecordStore(“Lista”, true);
rs.deleteRecord(Integer.parseInt(ID.getString()));
rs.closeRecordStore();
}catch(RecordStoreException rse){
System.out.println("Erro " + rse);
}
consultarbanco();
}
public void commandAction(Command c, Displayable d) {
if (c == cmExit) {
midlet.destroyApp(true);
midlet.notifyDestroyed();
}
if (c == voltar) {
this.deleteAll();
midlet.display.setCurrent(midlet.proxform);
}
if (c == adicionar) {
try {
adicionarRegistro();
} catch (RecordStoreNotOpenException ex) {
ex.printStackTrace();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}
if (c== deletar){
try {
deletar();
} catch (RecordStoreException ex) {
ex.printStackTrace();
}
}}
}
[/code]