我有一個程序使用簡單的預加載程序,而init()
方法創建主要的gui。一切正常,但在init()
方法完成並且預加載器消失之後,在主要階段出現之前會有明顯的延遲。我說很明顯,因爲它可能高達7秒,足以讓用戶感到困惑。Preloader和Stage之間的延遲顯示
我試圖儘可能少的投入儘可能在start()
方法:
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();
}
是否有降低/消除這種延遲的方法嗎?將預加載器完全取消並將其作爲主程序中的一個階段實施會更好嗎?提前致謝。
編輯:
我把Maverick283的諮詢和實施的預加載的淡出。還是有一點延遲,所以我發送了最後通知(從主程序到預加載程序)後顯示主舞臺,它的工作完美!
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));
}