我正在创建一个修补某些文件的程序,我想使用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()
也不会这样做。
答案 0 :(得分:0)
使你的对象像
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