这是我的进度条代码。但问题是当某个进程正在运行时进度和指示器无效。当我的代码运行时,-1.0f启动的进度条和最后由1.0fI启动的进度条是写循环,以便更新进度条。但这不起作用....我无法解决问题... 每次进度条按新值设置时,以下代码用于线程,但在GUI上未显示进度条。
Platform.runLater(new Runnable() {
@Override
public void run() {
progressBar.setProgress(currentNuggetCount);
progressIndicator.setProgress(progressBar.getProgress());
System.out.println(" > thread running > ");
}
});
答案 0 :(得分:1)
在JavaFX中,最好使用Service
和Task
作为线程。这项工作非常适合进度条。
例如,您的视图中有一个ProgressBar,您可以这样绑定:progressBar.progressProperty().bind(yourservice.progressProperty);
在你的服务上有类似的东西:
Service s = new Service() {
@Override
protected Task createTask() {
return new Task() {
@Override
protected Object call() throws Exception {
for (int i = 0; i < 10; i++)
{
updateProgress(i, 10);
}
return null;
}
};
}
};
您的进度将自动更新。您还可以将栏的visibleProperty绑定到服务的runningProperty,只有在服务运行时才会显示栏。