Standalone-Anwendungen innerhalb eines Pakets starten
Hintergrund:
Sie haben mehrere Standalone-Anwendungen ( myClass1, myClass2 usw.) innerhalb desselben Java-Pakets und möchten sie unabhängig voneinander starten. Der einfache Aufruf der launch()-Methode einer anderen Anwendung führt jedoch zu einem Fehler, da wiederholte Anwendungsstarts verboten sind.
Lösung:
Es ist zwar möglich, eine direkte zu verwenden Aufruf von start(...) für eine neue Instanz einer Anwendungsunterklasse, wird aus mehreren Gründen davon abgeraten:
Neuarchitektur Ihres Designs:
Um dieses Problem zu beheben, sollten Sie eine Umstrukturierung Ihres Designs in Betracht ziehen, sodass die Anwendungsmodule keine Anwendungsunterklassen sind aber regulärer Unterricht. Dadurch können Sie für jedes Modul separate eigenständige Anwendungen erstellen oder sie als Teil einer größeren Anwendung instanziieren.
Beispiel für eine eigenständige Anwendung:
public class FirstApplication extends Application { @Override public void start(Stage primaryStage) { Scene scene = new Scene(new FirstModule().getView()); primaryStage.setScene(scene); primaryStage.show(); } }
Composite Modulbeispiel:
public class CompositeModule { // ... public void showFirstModule() { Scene scene = new Scene(new FirstModule().getView()); Stage stage = new Stage(); stage.initOwner(this.getClass()); // Must use a JavaFX class, not an Application class stage.setScene(scene); stage.show(); } // ... }
Mit diesem Ansatz können Sie mehrere eigenständige Anwendungen innerhalb desselben Pakets erstellen und starten. unter Einhaltung der JavaFX-Best Practices.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere eigenständige JavaFX-Anwendungen aus demselben Paket starten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!