javafx:进度条显示进程的进度?

Ris*_*rma 0 javafx

我想在功能运行时显示进度栏。展示它的最好方法是什么?基本上,我正在构建一个程序,只需单击一次即可发送多个邮件。在发送邮件时,我想在发送邮件时显示进度栏。

Dev*_*r66 6

在这种情况下,最好的解决方案是使用Task

例:

Task<Parent> yourTaskName = new Task<Parent>() {
    @Override
    public Parent call() {
        // DO YOUR WORK

        //method to set progress
        updateProgress(workDone, max);

        //method to set labeltext
        updateMessage(message);
    }
};

//ProgressBar
ProgressBar pBar = new ProgressBar();
//Load Value from Task
pBar.progressProperty().bind(yourTaskName.progressProperty());
//New Loading Label
Label statusLabel = new Label();
//Get Text
statusLabel.setText("Loading...");
//Layout
VBox root = new VBox(statusLabel, pBar);
//SetFill Width TRUE
root.setFillWidth(true);
//Center Items
root.setAlignment(Pos.CENTER);

//SetOnSucceeded methode 
yourTaskName.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
        @Override
        public void handle(WorkerStateEvent event) {
            System.out.println("Finish");
        }
});

//Start Thread
Thread loadingThread = new Thread(yourTaskName);
loadingThread.start();
Run Code Online (Sandbox Code Playgroud)

希望这对您有所帮助。

PS:任务中的代码作为线程运行...