Oi pessoal,
estou com uma dúvida que esta me deixando louco… :lol:
Estou fazendo um programa que busca uns dados da internet, trata esses dados e mostra para o usuário. Enquando estou fazendo a conexão estou tentando colocar uma barra de progressão(gauge) para não ficar parecendo que o sistema travo. Estou usando thread para a gauge e a conexão também em thread.
Porém quando eu coloco pra rodar a porcaria age como se não tivesse a gauge pra mostrar. Eu gostaria que a gauge aparecesse e so saisse quando recebesse um true da minha classe conexão.
Em baixo esta meu código se alguém puder me mostrar onde esta o erro eu agradeço e se tiverem um exemplo também me ajuda bastante.
[code]import javax.microedition.midlet.;
import javax.microedition.lcdui.;
public class ExeCon extends MIDlet implements CommandListener, Runnable {
Display tela;
Form frmApres, frmEspera, frmResposta;
Apresentacao apresenta;
Resposta resposta;
String strUrl;
Gauge gauge;
Thread thrEspera;
public ExeCon(){
tela = Display.getDisplay(this);
//Tela de Apresentação
apresenta = new Apresentacao();
frmApres = apresenta.getForm();
frmApres.setCommandListener(this);
//Tela de resposta
resposta = new Resposta();
frmResposta = resposta.getFormInicial();
frmResposta.setCommandListener(this);
//Tela de Espera
frmEspera = new Form("Aguarde...");
gauge = new Gauge("", false, 100, 0);
frmEspera.append(gauge);
}
public void startApp(){
tela.setCurrent(frmApres);
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command c, Displayable s){
if (c == apresenta.sair || c == busca.sairbusca){
destroyApp(false);
notifyDestroyed();
} else if (c == apresenta.seguir){
//Mostra a tela de espera
tela.setCurrent(frmEspera);
thrEspera =new Thread(this);
thrEspera.start();
strUrl = "http://localhost:8080/raimyson/j2me.jsp";
//Classe de conexão extends Thread
Conexao conex = new Conexao();
conex.setUrl(strUrl);
conex.start();
//Fica aguardando resposta positiva do servidor
while (!conex.getSaida()){
try{Thread.currentThread().sleep(500);}catch(InterruptedException err){}
}
//Mostra a resposta tratada
resposta.setResposta(conex.getConexao());
frmResposta = resposta.getForm();
tela.setCurrent(frmResposta);
}
}
//Faz o incremento do gauge
public void run() {
for (int cont =1;cont <=100;cont++) {
try { Thread.sleep(30); }catch (Exception e) { }
gauge.setValue(cont);
}
}
}[/code]
Agradeço desde já a ajuda.