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
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