Thread, gauge e conexão

0 respostas
R

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.

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);
	  }
	}
}
Agradeço desde já a ajuda.
Criado 1 de abril de 2005
Respostas 0
Participantes 1