首頁 > Java > java教程 > 如何從同一套件中的另一個實例啟動獨立的 JavaFX 應用程式?

如何從同一套件中的另一個實例啟動獨立的 JavaFX 應用程式?

Barbara Streisand
發布: 2024-12-04 01:44:11
原創
513 人瀏覽過

How to Start a Standalone JavaFX Application from Another Instance within the Same Package?

當另一個實例位於同一包中時,如何​​從另一個實例初始化獨立應用程式

從另一個應用程式啟動獨立應用程序,即使兩個應用程式都屬於同一個應用程式同一個包,看起來很簡單,但正確實作可能很棘手。首先,有必要深入檢查該問題。

嘗試從另一個 Application 子類別中使用 Application 子類別的 launch() 方法時會出現問題。這種方法會觸發錯誤,因為 launch() 方法旨在啟動整個應用程序,並且不應多次呼叫。

要避免此錯誤,至關重要的是要認識到 Application 子類代表完整的應用程式在 Java 虛擬機 (JVM) 中運行的應用程式。因此,對於每個單獨的應用程序,每個 JVM 只應實例化一次它。任何可重複使用程式碼都應移至 Application 子類別以外的單獨類別。

可重複使用組件的重構

與其利用 Application 子類,更靈活的方法是為各個組件使用常規類。然後可以根據需要實例化和使用這些類,從而能夠創建獨立應用程式或整合到更大的應用程式中。

public class FirstModule {    
    private BorderPane view;    
    public FirstModule() {        
        view = new BorderPane();        
        // ...         
    }    
    public Parent getView() {        
        return view;    
    }
}
登入後複製
public class CompositeModule {    
    private HBox view;    
    public CompositeModule() {        
        // ...         
    }    
    public Parent getView() {        
        return view;    
    }
}
登入後複製

整合到獨立應用程式

要建立獨立的應用程序,請在應用程式中實例化所需的模組

public class FirstApplication extends Application {    
    @Override    
    public void start(Stage primaryStage) {        
        Scene scene = new Scene(new FirstModule().getView());        
        // ...    
    }
}
登入後複製

整合到更大的應用程式中

要將這些模組包含在更大的應用程式中,請建立一個組合它們的類別。

public class CompositeApplication extends Application {    
    @Override    
    public void start(Stage primaryStage) {        
        Scene scene = new Scene(new CompositeModule().getView());        
        // ...    
    }
}
登入後複製

結論

該技術提供了更大的靈活性並使得開發可重複使用組件,可以在各種獨立應用程式中使用或整合到更廣泛的應用程式中。這種重組也符合 JavaFX MVC 架構的預期設計,將應用程式邏輯與使用者介面元件分開。

以上是如何從同一套件中的另一個實例啟動獨立的 JavaFX 應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板