如何在 Java 中多次调用 launch()
JavaFX 应用程序启动方法 launch() 旨在被调用每个申请仅一次。尝试多次调用 launch() 会导致“IllegalStateException”错误。
解决方案:将后续窗口创建包装在 Platform.runLater()
而不是调用多次 launch(),请考虑以下方法:
示例代码:
<code class="java">public class Wumpus extends Application { private static final Insets SAFETY_ZONE = new Insets(10); private Label cowerInFear = new Label(); private Stage mainStage; @Override public void start(final Stage stage) { mainStage = stage; mainStage.setAlwaysOnTop(true); Platform.setImplicitExit(false); cowerInFear.setPadding(SAFETY_ZONE); cowerInFear.setOnMouseClicked(event -> Platform.exit()); stage.setScene(new Scene(cowerInFear)); } public static void main(String[] args) { launch(args); // Another window can be created here by wrapping its creation // and display in a Platform.runLater() block. Platform.runLater(() -> { Stage newStage = new Stage(); newStage.setScene(new Scene(new Label("Another Window"))); newStage.show(); }); } }</code>
注意:
以上是如何在不调用 launch() 的情况下创建多个 JavaFX 窗口?的详细内容。更多信息请关注PHP中文网其他相关文章!