JavaFX ProgressBar不会重置

时间:2016-05-30 12:43:42

标签: java javafx progress-bar

我正在创建一个修补某些文件的程序,我想使用ProgressBar作为进度指示器,但进度条保持完全填满,并且在完成后不会重置。 这是更新它的方法。

for(int i = 0; i < paths.getItemCount(); i++)
{       
     current_progress += 0.02; 
     System.out.println("verifiing: " +paths.getItems()[i] );
     File bugger = new File(paths.getItems()[i]);

     File dst = new File(starmade_path + "\\data\\image-resource\\ " +  names.getItems()[i] );
     Files.copy(bugger.toPath(), dst.toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES, NOFOLLOW_LINKS);
     ProgressBar.setProgress(current_progress);  
}

我已经尝试过这个

for(int i = 0; i < paths.getItemCount(); i++)
{        
    current_progress += 0.02; 
    System.out.println("verifiing: " +paths.getItems()[i] );
    File bugger = new File(paths.getItems()[i]);

    File dst = new File(starmade_path + "\\data\\image-resource\\ " +  names.getItems()[i] );
    Files.copy(bugger.toPath(), dst.toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES, NOFOLLOW_LINKS);
    ProgressBar.setProgress(current_progress);  
}

ProgressBar.setProgress(0);

但是当我使用它时,它根本不会显示任何进展。 Thread.sleep()也不会这样做。

1 个答案:

答案 0 :(得分:0)

  1. 不要写这样的代码&#39; ProgressBar.setProgress&#39; ,应该为使用该类的静态调用保留此语法。
  2. 使你的对象像

    ProgressBar progressBar = new ProgressBar();
    

    @FXML
    ProgressBar progressBar;
    

    2。 这个循环工作

    float current_progress = 0f;     
    for(int i = 0; i < 10; i++)  {
                current_progress += 0.02;
                progressBar.setProgress(current_progress);
            }
    

    并且进度条进展到宽度的20%,因此您的代码在语法上是正确的,可能问题是paths.getItemCount()最大值太小而无法看到一些有意义的进度,请检查输出的&#34 ;验证:&#34; + paths.getItems()[i] for this