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
Freigeben: 2024-12-02 05:30:10
Original
563 Leute haben es durchsucht

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();
    }
}
Nach dem Login kopieren

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();
    }

    // ...
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage