JavaFX:在新线程中加载FXML组件

时间:2015-05-10 18:40:26

标签: java multithreading javafx fxml

我正在使用一些FXML开发JavaFX桌面应用程序。但是我必须在运行时实际更改视图,因此我将多次加载FXML(并且还要更改使用的语言设置),所以我开始考虑是否可以在不同的线程中加载FXML组件。我想出了这个:

   new Thread(() -> {
        Node n;
        try {
            n = (Node) FXMLLoader.load(getClass().getResource("/fxml/Scene.fxml"));
            Platform.runLater(() -> {
                root.getChildren().add(n);                 
            });
        } catch (IOException ex) {
            Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
        }}).start();

新线程加载组件和平台,而不是将其发送到应用程序线程。

是否安全或是否存在我跳过的问题?在任何地方使用它都会有点过分吗?

0 个答案:

没有答案