我正在编写一个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,它就不会打印。
答案 0 :(得分:-1)
要创建新阶段,必须从JavaFX线程中运行它。您可以使用JavaFX的 Platform 工具轻松完成此操作。在你的情况下:
Platform.runLater(() -> {
Remote.create(host + " (" + partner.getValue() + ") - Conspire");
});