如何在 Java 中多次调用 launch()
JavaFX 应用程序启动方法 launch() 设计为调用每个申请仅一次。尝试多次调用 launch() 会导致“IllegalStateException”错误。
解决方案:将后续窗口创建包装在 Platform.runLater()
而不是调用launch() 多次,请考虑以下方法:
示例代码:
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();
});
}
}
注意:
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3