无法获得第二个JavaFX阶段?

时间:2015-02-01 03:37:53

标签: java javafx

我正在编写一个RDP客户端,我希望在保持旧版运行的同时展示一个新阶段。不幸的是,第二阶段根本就没有了。

这是我的舞台:

public final class Remote extends Stage {

    private static final URL FXML = Remote.class
            .getResource("/conspire/remote.fxml");
    private static final Image ICON = new Image(Remote.class.getResource(
            "icon.png").toExternalForm());

    public static Remote create(String title) throws IOException {
        return new Remote(title);
    }

    private Remote(String title) throws IOException {
        Parent parent = FXMLLoader.load(FXML);

        Scene scene = new Scene(parent);
        setScene(scene);

        getIcons().add(ICON);
        setTitle(title);
        setResizable(true);
        centerOnScreen();

        show();
    }

}

这就是我运行它的方式:

Remote.create(host + " (" + partner.getValue() + ") - Conspire");

create 方法甚至不会调用。如果我在那里添加了一个sysout,它就不会打印。

1 个答案:

答案 0 :(得分:-1)

要创建新阶段,必须从JavaFX线程中运行它。您可以使用JavaFX的 Platform 工具轻松完成此操作。在你的情况下:

Platform.runLater(() -> {
    Remote.create(host + " (" + partner.getValue() + ") - Conspire");
});