如何處理Java 中的「Application Launch Must Not Be Called More than Once」異常
多次呼叫launch()在JavaFX 應用程序中是不允許的。 JavaFX 文件中對此進行了明確說明:
不得多次調用,否則將引發異常。
定期顯示視窗的建議
不要多次呼叫launch(),請依照下列步驟操作:
範例實作:
<code class="java">public class MyApplication extends Application { private Stage primaryStage; @Override public void start(Stage primaryStage) { this.primaryStage = primaryStage; primaryStage.setScene(new Scene(new Label("Hello, World!"))); primaryStage.show(); // Keep the JavaFX runtime running in the background Platform.setImplicitExit(false); } public void showNewWindow() { Platform.runLater(() -> { Stage newWindow = new Stage(); newWindow.setScene(new Scene(new Label("New Window"))); newWindow.show(); }); } public static void main(String[] args) { launch(args); } }</code>
替代方法:
使用 Platform.startup():Java 9 引入了 Platform.startup() 來觸發 JavaFX 運行時,無需 Application 類別和 launch() 呼叫。類似的限制也適用於 launch()。
結論(可選):遵守這些準則,您可以避免「應用程式啟動不得被調用多次」異常並在您的JavaFX 應用程式中定期顯示視窗。以上是如何避免 JavaFX 中的「應用程式啟動不得被呼叫多次」異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!