首頁  >  文章  >  Java  >  如何避免 JavaFX 中的「應用程式啟動不得被呼叫多次」異常

如何避免 JavaFX 中的「應用程式啟動不得被呼叫多次」異常

DDD
DDD原創
2024-10-24 06:01:02206瀏覽

How to Avoid

如何處理Java 中的「Application Launch Must Not Be Called More than Once」異常

多次呼叫launch()在JavaFX 應用程序中是不允許的。 JavaFX 文件中對此進行了明確說明:

不得多次調用,否則將引發異常。

定期顯示視窗的建議

不要多次呼叫launch(),請依照下列步驟操作:

  1. 呼叫一次Application. launch()。
  2. 使用 Platform 保持 JavaFX 運行時在後台運行.setImplicitExit(false)。
  3. 當您需要顯示另一個視窗時,請在 Platform.runLater() 中執行 window show() 調用,以確保它由 JavaFX 應用程式執行緒處理。

範例實作:

<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>

替代方法:

  • 替代方法:
  • 替代方法: 而不是應用程式中,您可以使用JFXPanel。但是,使用模式仍然相似。

使用 Platform.startup():Java 9 引入了 Platform.startup() 來觸發 JavaFX 運行時,無需 Application 類別和 launch() 呼叫。類似的限制也適用於 launch()。

結論(可選):遵守這些準則,您可以避免「應用程式啟動不得被調用多次」異常並在您的JavaFX 應用程式中定期顯示視窗。

以上是如何避免 JavaFX 中的「應用程式啟動不得被呼叫多次」異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn