Starten eigenständiger Anwendungen innerhalb desselben Pakets in Java
Das Starten eigenständiger Anwendungen innerhalb einer übergeordneten Anwendung kann in verschiedenen Szenarien eine häufige Anforderung sein. Es stellt jedoch eine Herausforderung dar, wenn die eigenständigen Anwendungen alle Teil desselben Pakets sind.
Der herkömmliche Ansatz, myClass2.launch("") zum Starten von myClass2 aus myClass1 zu verwenden, führt wie beim Starten zu einem Fehler Soll einmal beim Start einer Anwendung aufgerufen werden.
Um dieses Problem zu lösen, besteht ein geeigneterer Ansatz darin, das Design umzugestalten, indem für jedes Modul separate Klassen erstellt werden, anstatt die Anwendungsklasse zu erweitern. Diese Klassen können nach Bedarf instanziiert und verwaltet werden.
Refactoring des Anwendungsdesigns
Erstellen Sie reguläre Klassen wie FirstModule und SecondModule, um die Funktionalität jeder eigenständigen Anwendung zu kapseln .
public class FirstModule { private BorderPane view; public FirstModule() { // Create and configure the view } public Parent getView() { return view; } }
Instanziierung und Verwaltung Module
Module können direkt in der Hauptanwendung instanziiert und verwaltet werden.
FirstModule firstModule = new FirstModule(); Scene scene = new Scene(firstModule.getView()); Stage stage = new Stage(); stage.setScene(scene); stage.show();
Eigenständige Anwendungen erstellen
Für Module, die benötigt werden Um als eigenständige Anwendungen ausgeführt zu werden, können separate Anwendungsunterklassen vorhanden sein erstellt.
public class FirstApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new FirstModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
Module in eine Verbundanwendung integrieren
Module können auch in eine größere Verbundanwendung integriert werden.
public class CompositeModule { private HBox view; public CompositeModule() { // Create buttons to launch individual modules } public Parent getView() { return view; } } public class CompositeApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new CompositeModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
Dies Der Ansatz ermöglicht es Ihnen, mehrere eigenständige Anwendungen innerhalb desselben Pakets zu haben und diese nahtlos aus anderen Modulen oder Anwendungen heraus zu starten.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere eigenständige Java-Anwendungen innerhalb desselben Pakets starten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!