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:
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…
P
paulo.weber
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.
abelgomes
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…
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
P
paulo.weber
Blz, logo vou testar e depois posto o resultado, valeu.
P
paulo.weber
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)
abelgomes
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…
P
paulo.weber
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.
abelgomes
blz…se quiser usar o floggy e tiver duvidas posta ai…