Dúvida com cálculo do JProgressBar

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.."); }

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

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

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

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

Como tranformo?

eu penso inicialmente em fazer algo do tipo…

[code]public void executa{
bprogress.setStringPainted(true);
int linhas = tabela.getSelectedRows();
bprogress.setValue(0);
bprogress.setMaximum(linhas);
for (int i = 0; i < 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;);    

} [/code]

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;); }