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..");
}
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?
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(" - Concluido..");
} [/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 < 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(" - Concluido..");
}