Dúvida com cálculo do JProgressBar

8 respostas
wilsontads

Eu tenho um método chamado executa, que vai executar uma determinada função, somente nas linhas selecionadas em um Jtable.
nessa janela eu tenho um JProgressBar que deverá encher-se toda vez que entrar dentro do if.
eu consegui fazer o calculo pegando o tamanho das linhas, e setando mais value no JProgressBar, toda vez que o laço se repetisse…
o problema que tenho é que, tenho que preencher somente quando entrar no if… infelizmente não to conseguindo fazer esse calculo…
alguém pode me dar uma luz?

public void executa{ bprogress.setStringPainted(true); int linhas = tabela.getRowCount(); bprogress.setValue(0); bprogress.setMaximum(linhas); for (int i = 0; i < linhas; i++) { bprogress.setValue(i + 1); boolean b = linhasSelecionadas;//aqui retorna se a linha foi selecionada ou não com boolean if (b == true) { //Aqui executa apenas as linhas selecionadas Principal principal = new Principal(); principal.executa(); } } bprogress.setString(" - Concluido.."); }

8 Respostas

gmmascarin

Wilson

Em http://www.guj.com.br/java/36678-progressbar- e http://www.java2s.com/Code/Java/Swing-JFC/ProgressbarSample.htm você vai encontrar o que está procurando.

Abraços

wilsontads

Pois é… a dúvida não é como usar… minha duvida, é quanto ao cálculo…
por que conforme você pode ver, eu to preenchendo todavez que ele volta no laço de repetição…
e ele deve preencher somente quando entrar no if…

E

e ae kara…

vc manda executar o comando que varre TODAS as linhas enqnto a progressBar é preenchida né…
pq vc não manda executar o comando somente com as linhas selecionadas da tabela?? :

public void executa{ bprogress.setStringPainted(true); int linhas = tabela.getSelectedRows(); bprogress.setValue(0); bprogress.setMaximum(linhas); for (int i = 0; i < linhas; i++) { bprogress.setValue(i + 1); //aqui vc pode fazer uma regra de três para transformar, em vez de registros percorridos, em porcentagem processada. Principal principal = new Principal(); principal.executa(); } bprogress.setString(" - Concluido.."); }

ve se te ajuda kara…
abraçow

wilsontads

Sim… eu varro todas as linhas… se uma determinada linha for selecionada ela entra na condição e executa o principal…

E

tentou fazer com o código q eu te passei no post anterior?

wilsontads

Como tranformo?

wilsontads

eu penso inicialmente em fazer algo do tipo..

public void executa{         
        bprogress.setStringPainted(true);    
        int linhas = tabela.getSelectedRows();  
        bprogress.setValue(0);    
        bprogress.setMaximum(linhas);    
        for (int i = 0; i &lt; linhas; i++) {  
             if(linha == verdadeiro){
             bprogress.setValue(i + 1);
             Principal principal = new Principal();    
             principal.executa();    
             }else{
                   //bprogress recebe alguma instrução ou cálculo
                    }  
             
        }  
        bprogress.setString(&quot; - Concluido..&quot;);    
}
wilsontads

O máx. que eu consegui até agora é o seguinte…

public void executa{ bprogress.setStringPainted(true); int linhas = tabela.getSelectedRows(); bprogress.setValue(0); bprogress.setMaximum(linhas); for (int i = 0; i &lt; linhas; i++) { if(linha == verdadeiro){ if(i==0) i=1; bprogress.setValue(100/i); // só que assim eu consigo o valor inverso.. 100%..50%..25%..10%... Principal principal = new Principal(); principal.executa(); } } bprogress.setString(&quot; - Concluido..&quot;); }

Criado 13 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 8
Participantes 3