Usando ProgressBar + tread

Galera tenho uma aplicação porém não encontro a forma de quando completar os 100% ele me abra um relatório da conclusão , caso alguém ja tenha o código e possa me ensinar como à ser feito agradeço…

abrx

alguem teria alguma ideia de como fazer?

Bom, para você criar uma barra de progresso tens que saber o valor final de alguma qtd. de coisas você quer processar. Tipo: Qtd. de arquivos a serem lidos e salvos no banco… tem com mensurar… Mas no seu caso, o que você está querendo processar? Tem que ser mais específico.

Seguinte estou com uma aplicação que lê um arquivo txt e imprimi um relatorio certo!

nessa aplicação ele esta fazendo o seguinte tem varias cadastros tipo umas 30 por exemplo … ate tentei fazer com que ele contasse as linhas e depois caso tivesse ja montando o relatorio mesmo com 15% ou 50 % ou 90% ja completa rapidamente os 100% e mostrasse o relatorio, pois ele ja estara montado…

a barra de rolagem correia tipo

1234567891011…ai faz de conta que ja esta pronto ele rapidamente acelera ate 100% e mostra o relátorio.

não sei se me entendeu…

Não sei se meu código está muito correto, mas dá uma olhada ai. De repente surge alguma idéia pra você.

import java.io.File;

public class Principal {

	public static void main(String[] args) throws InterruptedException {
		
		File arquivo = new File("algumarquivodetexto.txt"); // Fiz o teste com um arquivo de 600 MB e funcionou.
		
		ProcessadorArquivo pa = new ProcessadorArquivo(arquivo);
		
		Thread t = new Thread(pa);
		
		t.start();
		
		while (t.isAlive()) {
			Thread.sleep(1000);
			System.out.println(pa.getProgresso());		
		}

	}

}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ProcessadorArquivo implements Runnable {
	
	private File arquivo;
	private long qtdBytesProcessados;
	private int progresso; // 1 até 100
	private long tamanhoTotalBytesArquivo;

	public ProcessadorArquivo(File arquivo) {
		this.arquivo = arquivo;
		qtdBytesProcessados = 0;
		tamanhoTotalBytesArquivo = 0;
	}
	
	public void run() {
		tamanhoTotalBytesArquivo = arquivo.length();
		
		try {
			BufferedReader br = new BufferedReader(new FileReader(arquivo));
			
			while (br.read() != -1)
				qtdBytesProcessados += 1;
			
			br.close();

			// depois você trata melhor as excessões, ok?
		} catch (FileNotFoundException e) { 
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

	public int getProgresso() {
		if (tamanhoTotalBytesArquivo > 0)
			this.progresso = (int) ((100 * qtdBytesProcessados) / tamanhoTotalBytesArquivo);
		return this.progresso;
	}
	
	public long getTamanhoTotalBytesArquivo() {
		return this.tamanhoTotalBytesArquivo;		
	}
}

Da para usar com banco de dados por exemplo criar uma lista de email a ser criado, quando clicar no JmenuItem “criar lista” abre um jDialogPane com um jprogress bar enquanto a pesquisa do banco de dados a barra mostra o progresso.

Grato