如何在javaFx中设置进度条?

时间:2013-06-17 10:05:52

标签: java javafx javafx-8

这是我的进度条代码。但问题是当某个进程正在运行时进度和指示器无效。当我的代码运行时,-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 > ");
                            }
                        });

1 个答案:

答案 0 :(得分:1)

在JavaFX中,最好使用ServiceTask作为线程。这项工作非常适合进度条。

例如,您的视图中有一个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,只有在服务运行时才会显示栏。