import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.scene.Scene;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage stage) {
// La tâche à exécuter
Task < Void > task = new Task < Void > () {
@Override
protected Void call() throws Exception {
// Avancement total
int totalProgress = 100;
// Fausse tâche
for (int i = 0; i < totalProgress + 1; i++) {
Thread.sleep(50);
// Mise à jour de l'avancement
updateProgress(i, totalProgress);
}
return null;
}
};
// La barre de progression
var progressBar = new ProgressBar();
// Binding sur l'avancement
progressBar.progressProperty().bind(task.progressProperty());
// Démarrage de la tâche
new Thread(task).start();
var scene = new Scene(new StackPane(progressBar), 640, 480);
stage.setScene(scene);
stage.show();
}
}
Commentaires
Enregistrer un commentaire