0

达到100%后如何将jprogressbar的值设置为零?

我使用了以下代码,但没有完全按照我的意愿行事:

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    Thread runner = new Thread(){
        @Override
        public void run(){
            counter = pb_MINIMUM;
            while(counter <= pb_MAXIMUM){
                Runnable runme = new Runnable(){
                    public void run(){
                        jProgressBar1.setValue(counter);
                    }
                };
                SwingUtilities.invokeLater(runme);
                counter++;
                try{
                    Thread.sleep(100);
                }catch(Exception e){
                }
            }
        }
    };
    runner.start();
    if(jProgressBar1.getMaximum()==pb_MAXIMUM){
        jProgressBar1.setValue(0);
    }
}

感谢您提供的任何帮助,我可以到这里...

4

1 回答 1

2

您的调用setValue(0)在您启动线程后直接发生(它完成所有工作并增加进度条的值)。此时尚未完成任何工作,并且该方法不会等待您的线程完成。相反,您可以只在您的 while 循环之后包含代码(与您在内部执行的操作相同,但值为零)。

于 2011-03-22T06:36:28.520 回答