我的应用程序大约需要3-5秒才能启动。我想提供反馈给用户时,等待,一个飞溅的屏幕。有人能指导我如何在应用程序初始化时实现启动屏幕吗?
我的应用程序主要由一个tabPane
和少量的tabs
组成。每个选项卡都有自己的控制器和FXML。
我尝试过preloader
,但是它不适用于我的情况,或者我不知道如何配置它以使它工作。大多数在线消息来源都使用了“计时器”,但这样做没有任何意义。
加载FXML:
2018年10月22日1:54:56 javafx.fxml.FXMLLoader$ValueElement processValue警告:通过8.0.71版的JavaFX运行时加载带有8.0.171版JavaFX API的JavaFX文档 2018年10月22日1:54:56 javafx.fxml.FXMLLoader$ValueElement processValue警告:通过8.0.71版的JavaFX运行时加载带有8.0.171版JavaFX API的JavaFX文档 2018年10月22日1:54:56 javafx.fxml.FXMLLoader$ValueElement processValue警告:通过8.0.71版的JavaFX运行时加载带有8.0.171版JavaFX API的JavaFX文档 2018年10月22日1:54:56 javafx.fxml.FXMLLoader$ValueElement processValue警告:通过8.0.71版的JavaFX运行时加载带有8.0.171版JavaFX API的JavaFX文档 2018年10月22日1:54:56 javafx.fxml.FXMLLoader$ValueElement processValue警告:通过8.0.71版的JavaFX运行时加载带有8.0.171版JavaFX API的JavaFX文档
发布于 2018-11-21 12:20:57
1-创建fxml启动屏幕
2-在总体上,链接如下所示的闪存:
@Override
public void start(Stage primaryStage) throws Exception{
setPrimaryStage(primaryStage);
prStage = primaryStage;
Parent root = FXMLLoader.load(getClass().getResource("../gui/SplashScreen.fxml"));
Scene scene = new Scene(root);
prStage.setScene(scene);
prStage.show();
}
3-在SplashScreenControler中,您需要做两件事:
因此,您需要在控制器中创建一个任务类,如下所示:
public class splashscreenController implements Initializable {
@FXML
Pane panParent;
@Override
public void initialize(URL location, ResourceBundle resources) {
new Thread(new SplashScreen()).start();
}
class SplashScreen extends Task {
@Override
public Object call() throws IOException, InterruptedException{
//make something (here thrad.sleep)
Thread.sleep(3000);
Parent root = FXMLLoader.load(getClass().getResource("your/javafx/gui.fxml"));
//need to be done after the initialized methode
Platform.runLater(new Runnable() {
@Override
public void run()
Stage stage = new Stage();
assert root != null;
Scene scene = new Scene(root);
stage.setScene(scene);
//show your principal windows
stage.
MainJavaFx.setPrimaryStage(stage);
//close your splashScreen
((Stage) panParent.getScene().getWindow()).close();
}
}
});
return null;
}
}
如果您需要更多的信息,有一个非常好的视频主题这里
https://stackoverflow.com/questions/52923307
复制相似问题