Olá, sou novo no fórum… Estou com a seguinte dúvida:
Estou criando uma aplicação, em JME, que tem um Form com dados provenientes de uma consulta no banco de dados, OK.
Só que, toda vez que eu chamar esse form, ele deve atualizar os valores, ou seja, fazer uma nova consulta no BD e mostrar os novos valores, isso não está acontecendo…
Percebi que com a opção “Is Lazy Initializaed” do Form selecionada, ele cria o seguinte método:
public Form getRestricoesForm() {
if (restricoesForm == null) {
// write pre-init user code here
restricoesForm = new Form(“Resultado da consulta no bd”, new Item[] { getPlacaTextField(), getX() });
restricoesForm.setCommandListener(this);
// write post-init user code here
}
return restricoesForm;
}
Pelo que entendi ele só cria uma nova instância do Form se o mesmo ainda não tenha sido criado, caso contrário ele só “aponta” para o já criado!
Alguém teria alguma dica?

Ah, no método getPlacaTextField() tem o seguinte:
public TextField getPlacaTextField() {
if (placaTextField == null) {
// write pre-init user code here
placaTextField = new TextField(“Placa:”, getRespostaWS(1), 32, TextField.ANY | TextField.UNEDITABLE);
// write post-init user code here
}
return placaTextField;
}
nao entendi muito bem oq vc quer, se vc quer atualçizar o form com base em uma pesquisa…é so da o set…explica melhor isso ai, e se possivel coloca um trecho do codigo…
Assim, tenho um Form que busca da dos em um Web Service (que busca em um Banco de Dados), e apresenta alguns campos na tela.
Na primeira execução, ou seja, quando o referido Form é “chamado” pela 1ª vez ele funciona normal, mas quando eu chamo ele novamente ele continua mostrando os mesmos dados da 1ª execução… Ele não está criando uma nova instância…
Imagine assim: só na 1ª chamada é que ele funciona normalmente, depois ele em vez de criar uma nova instância/atualizar os dados, ele simplesmente continua mostrando os dados da 1ª chamada.
entao vc tem que setar esses dados nesse mesmo form…passa um map no parametro e seta os valores no form…posta ai seu codigo pra gente entender melhor…
public TextField getPlacaTextField() {
if (placaTextField == null) {
// write pre-init user code here
placaTextField = new TextField(“Placa:”, getRespostaWS(1), 32, TextField.ANY | TextField.UNEDITABLE);
// write post-init user code here
}
return placaTextField;
}
O método getRespostaWS() busca as informações recebidas pela consulta, onde (1) é a posição no ResultSet.
Mas eu acho que o problema não é esse… pois isso está funcionando na 1ª execução.
Oq eu acho que está causando a não atualiação é o seguinte (destacado):
public Form getRestricoesForm() {
if (restricoesForm == null) {
// write pre-init user code here
restricoesForm = new Form(“Resultado da consulta no bd”, new Item[] { getPlacaTextField(), getX() });
restricoesForm.setCommandListener(this);
// write post-init user code here
}
return restricoesForm;
}
pq ai é o seguinte…olha como ta feito
se o cara for null ele instancia…como de primeira ele é null entao vai blz…mas da segunda em diante elçe so retorna o que ja esta instanciado…um Singleton em ;)…
todos os components so precisam ser instanciados um vez…oque vc deve fazer é um metodo para preencher seus componentes cada vez que vc chamar Ex:
public void preencheComponentes("AQUI VC PASSA O ESULTADO DA SUA CONSULTA EXEMPLO PESSOA" pessoa){
textBox.setText(pessoa.getNome());
textBox2.setText(pessoa.getTelefone());
.
.
.....
//e assim por diante
}
entao qaundo vc apertar o botao ele chama o metodo para carregar…vc ja deixa todos os componentes instaciados…
pode ir que vai funcionar 
Blz, logo vou testar e depois posto o resultado, valeu.
Se eu defino o conteúdo assim: placaTextField.setString(getRespostaWS(1));
Ocorre o erro abaixo:
java.lang.NullPointerException
at tela.Veiculos.commandAction(Veiculos.java:156)
at org.netbeans.microedition.lcdui.WaitScreen.doAction(WaitScreen.java:175)
at org.netbeans.microedition.lcdui.WaitScreen.access$000(WaitScreen.java:57)
at org.netbeans.microedition.lcdui.WaitScreen$BackgroundExecutor$1.run(WaitScreen.java:207)
at javax.microedition.lcdui.Display.getCallSerially(+72)
at javax.microedition.lcdui.Display.access$1000(+4)
at javax.microedition.lcdui.Display$DisplayAccessor.callSerially(+7)
at javax.microedition.lcdui.Display$DisplayManagerImpl.callSerially(+9)
at com.sun.midp.lcdui.DefaultEventHandler.callSeriallyEvent(+16)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+545)
acho que vc esta chamando esse metodo antes da consulta…posta ai parte completa do seu codigo que vc fez a alteração que eu falei…
Bom dia!
Cara deu certo…
Fiz o seguinte:
[b]if(placaTextField != null){[/b] //Só executa se já tenha sido criado anteriormente
placaTextField.setString(getRespostaWS(1));
}
switchDisplayable(getConsultaOKAlert(), getRestricoesForm());
Valeu.
blz…se quiser usar o floggy e tiver duvidas posta ai… 