從另一個應用程式啟動獨立應用程序,即使兩個應用程式都屬於同一個應用程式同一個包,看起來很簡單,但正確實作可能很棘手。首先,有必要深入檢查該問題。
嘗試從另一個 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中文網其他相關文章!