Ich habe ein Programm, das einen einfachen Preloader verwendet, während die init()
Methode die Hauptgui erstellt. Alles funktioniert gut, aber nachdem die Methode init()
abgeschlossen ist und der Preloader verschwindet, gibt es eine spürbare Verzögerung, bevor die Hauptbühne auftaucht. Ich sage bemerkbar, weil es bis zu 7 Sekunden dauern kann, genug für einen Benutzer, um verwirrt zu werden.Verzögerung zwischen Preloader und Bühne gezeigt
Ich habe versucht, so wenig wie möglich in der start()
Methode zu setzen:
public void start(Stage stage) {
/*Scene*/
scene = new Scene(root, 1200, 700);
stage.setScene(scene);
scene.setFill(null);
/*Stage*/
stage.initStyle(StageStyle.TRANSPARENT);
stage.centerOnScreen();
stage.show();
}
Gibt es eine Möglichkeit zu reduzieren/eliminieren diese Verzögerung? Wäre es besser, den Preloader komplett zu verschrotten und als Bühne im Hauptprogramm zu implementieren? Danke im Voraus.
EDIT:
nahm ich Maverick283 Rat und umgesetzt fadeOut der preloader. Es gab immer noch ein bisschen Verspätung, also schickte ich die letzte Benachrichtigung (vom Hauptprogramm zum Preloader) nach zeigte die Hauptbühne und es funktionierte perfekt!
public void start(Stage stage) {
/*Scene*/
scene = new Scene(root, 1200, 700);
stage.setScene(scene);
scene.setFill(null);
/*Stage*/
stage.initStyle(StageStyle.TRANSPARENT);
stage.centerOnScreen();
stage.show();
notifyPreloader(new Preloader.ProgressNotification(0.99));
}