JProgressBar não atualiza

1 resposta
C

Boa tarde fiz um código para ler um txt e está certinho. O problema é o tempo que demora, gostaria de colocar uma barra de progresso para o usuário acompanhar.
Fiz o seguinte código, porém a barra de progresso não incrementa durante a importação do arquivo.
Se alguém puder me ajudar. Obrigado

FileReader arq = new FileReader(arquivoLeitura);
            BufferedReader lerArq = new BufferedReader(arq);
            String linha = lerArq.readLine(); // lê a primeira linha

            int cont = 0;
            jProgressBar1.setMinimum(0);
            jProgressBar1.setMaximum(numLinhas);
            jProgressBar1.setValue(0);
            while (linha != null) {
                new Thread(new Runnable() {

                    public void run() {
                        jProgressBar1.setValue(jProgressBar1.getValue() + 1);
                        jProgressBar1.repaint();

                        try {
                            Thread.sleep(10);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }).start();
.
.
.

Esse código é executado a partir de um botão.

1 Resposta

C

caso alguém tenha dúvida.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        Runnable r = new Runnable() {
            @Override
            public void run() {
                jProgressBar1.setMinimum(0);
                jProgressBar1.setMaximum(100);
                jProgressBar1.setValue(1);
                for (int i = 0; i < 100; i++) {
                    jProgressBar1.setValue(jProgressBar1.getValue() + 1);
                    jProgressBar1.repaint();
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException ex) {
                        Logger.getLogger(FrmPrincipal.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        };               

        Thread t = new Thread(r);
        t.start();

}
Criado 18 de outubro de 2012
Ultima resposta 18 de out. de 2012
Respostas 1
Participantes 1