Heim >Java >javaLernprogramm >Wie kann ich mehrere eigenständige JavaFX-Anwendungen aus demselben Paket starten?

Wie kann ich mehrere eigenständige JavaFX-Anwendungen aus demselben Paket starten?

DDD
DDDOriginal
2024-12-02 05:30:10585Durchsuche

How Can I Launch Multiple Standalone JavaFX Applications from the Same Package?

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:

  • Es widerspricht dem beabsichtigten Zweck der start(...)-Methode, die die Hauptmethode in herkömmlichen Java-Anwendungen ersetzen soll.
  • Jede Anwendungsunterklasse stellt eine gesamte laufende Anwendung dar, sodass mehrere Instanzen grundsätzlich nicht wiederverwendbar sind.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn