Uso de Thread com JProgressBar e Jasperreports, erro na Thread

Olá,
Estou com dificuldade para gerar essa thread e nao travar minha aplicação na hora de gerar os relatórios, porem ainda não tive sucesso programando.

Vou postar aqui meu código.

aqui o código para iniciar o JProgressBar

   public static void iniciaCarregar() {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run(){
                barraStatusLabel.setText("Carregando...");
                barraDeProgresso.setIndeterminate(true);
            }
        });
   }
   public static void paraCarregar() {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run(){
                barraStatusLabel.setText("Pronto");
                barraDeProgresso.setIndeterminate(false);
            }
        });
   }

Aqui o código da Thread para gerar o relatório, ele não executa um loop pois chama uma função que gera meu relatório e exibe na tela.

public class ThreadRelatorioEstoque implements Runnable {

	public ThreadRelatorioEstoque(){}

        @Override
	public void run() {
		iniciaCarregar();
		try{
                    new Gerar().geraRelatorio("Estoque.jasper", "Relatório de Estoque ",0);
		}catch(Exception e){

		}finally{
                    paraCarregar();
		}
		return;
	}
    }

Obrigado.

Também abrí um tópico sobre isso, apesar de o problema ser diferente acho que vai te ajudar.

http://www.guj.com.br/posts/list/220314.java