如何在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