jProgressBar

1 resposta
brunohenrique

Boa tarde galera…

estou sem nocao de fazer funcionar o jprogressbar sob a seguinte circunstância.

tenho um Jframe, onde está localizado o progressbar,
tambem tenho várias outras classes que fazem o controle das informações,
e nestas classes estão os parametros do progressbar.

meu problema: não estou conseguindo passar os parametros que estão nas classes,
para o progressbar no frame, de forma que o usuario visualize no frame o status do
processamento nas classes!

se alguém puder dar uma forcinha agredeço.

1 Resposta

Grinvon

Espero que você entenda minha explicação.

Eu fiz isso na prática, já que um dia eu estava entediado e não tinha nada de interessante para fazer.

Bom…

Você tem uma classe que estende de JFrame e ela tem um um JProgressBar.

A CLASSE que você irá processar os dados você deve colocá-la em thread, assim poderá renderizar, e faça também um método nessa classe que receba um JProgressBar.

nessa classe você irá tratar a execução.

No programa que fiz, a classe de frame é apenas para o frame, toda a logica do que o programinha faz está em outra classe de outro pacote (mas isso é claro que é opicional).

private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed
        
        if (btnOK.getText().equals("Procurar")) {
            lista.setText("");
            busca.setText("");
            search = new Search(sDir.getText(), sExt.getText(), sNome.getText(), sContent.getText());

            Thread t = new Thread(search);

            prog.setStringPainted(true);
            search.setProgressBar(prog);
            search.listas(lista, busca);
            search.setButton(btnOK);
            status = new JLabel("status");
            search.setStatus(status);
            
            btnOK.setText("Cancelar");
            t.start();             
            
        } else {
            search.stop();
            btnOK.setText("Procurar");
        }
    }//GEN-LAST:event_btnOKActionPerformed

No método acima, o botão faz uma instância de Search, que é a classe que exatamente irá fazer a lóigca que quero, passa ele em thread e seta um JProgressBar em um método que fiz na classe Search, lá eu controlo ele da seguinte forma…

public void setProgressBar(JProgressBar bar) {
        prog = bar;
    }
    
    public void  calcularPorcentagem(int qtdTotal, int count) {
        
        int x = (100 * count) / qtdTotal;
        prog.setValue(x);
    }

Acho que daí já da para você entender um pouco de como funciona a lógica. Espero que lhe ajude.

Criado 7 de novembro de 2007
Ultima resposta 7 de nov. de 2007
Respostas 1
Participantes 2