簡體   English   中英

Javafx - 從 java class 更新 UI 中的進度指示器

[英]Javafx - Update progress indicator in UI from java class

以下是我在 fxml 中所做的更改

java 文件中的更改,這里是我的代碼:

private ProgressIndicator pi;

void handlebuildButtonAction(ActionEvent event) throws IOException, GeneralSecurityException {

if ((entServer.isSelected()==true || compasServer.isSelected()==true)) {

            if(!fileList.isEmpty()){
                ProgressIndicator pi = new ProgressIndicator();
                pi.setProgress(10);
}
}

運行應用程序時進度指示器未更新。 我不確定如何將更改同步到 UI。 在這方面幫助我。 提前致謝。

output

例如:如果您設置 0.1 - 進度將是 10%,0.2 - 20% 等等,所以當您設置進度 => 1 時,您將始終“完成”。

在這里,這是一個帶有按鈕的示例,當您單擊按鈕時,您的進度指示器將被更新(單擊 + 10%):

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.stage.Stage;

public class Test extends Application {
    private ProgressIndicator pi;
    private double counter = 0;
    public void start(Stage stage)
    {
        ProgressIndicator pi = new ProgressIndicator();
        Button button = new Button("Press");

        TilePane root = new TilePane();

        // action event
        EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e)
            {
                counter += 0.1;
                pi.setProgress(counter);
            }
        };


        button.setOnAction(event);

        root.getChildren().add(button);
        root.getChildren().add(pi);

        // create a scene
        Scene scene = new Scene(root, 200, 200);

        // set the scene
        stage.setScene(scene);

        stage.show();
    }

    public static void main(String args[])
    {
        // launch the application
        launch(args);
    }
}

只需根據您的情況更改此代碼:

EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() {
            public void handle(ActionEvent e)
            {
                if ((entServer.isSelected()==true || compasServer.isSelected()==true)) {

                    if (!fileList.isEmpty()) {
                         counter += 0.1;
                         pi.setProgress(counter);
                    }
                }
            }
        };

希望對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM