首頁 > Java > java教程 > 主體

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

DDD
發布: 2024-10-24 06:01:02
原創
215 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!