Heim > Java > javaLernprogramm > So vermeiden Sie die Ausnahme „Der Anwendungsstart darf nicht mehr als einmal aufgerufen werden' in JavaFX

So vermeiden Sie die Ausnahme „Der Anwendungsstart darf nicht mehr als einmal aufgerufen werden' in JavaFX

DDD
Freigeben: 2024-10-24 06:01:02
Original
319 Leute haben es durchsucht

How to Avoid

So gehen Sie mit der Ausnahme „Application Launch Darf nicht mehr als einmal aufgerufen werden“ in Java um

Launch() mehr als einmal aufrufen in einer JavaFX-Anwendung ist nicht zulässig. Dies wird in der JavaFX-Dokumentation ausdrücklich angegeben:

Es darf nicht mehr als einmal aufgerufen werden, sonst wird eine Ausnahme ausgelöst.

Vorschlag für die regelmäßige Anzeige eines Fensters

Anstelle mehrerer Aufrufe von launch() befolgen Sie diese Schritte:

  1. Rufen Sie Application.launch() einmal auf.
  2. Lassen Sie die JavaFX-Laufzeit mithilfe von Platform im Hintergrund laufen .setImplicitExit(false).
  3. Wenn Sie ein anderes Fenster anzeigen müssen, führen Sie den Fensteraufruf show() in Platform.runLater() aus, um sicherzustellen, dass er vom JavaFX-Anwendungsthread verarbeitet wird.

Beispielimplementierung:

<code class="java">public class MyApplication extends Application {
    private Stage primaryStage;

    @Override
    public void start(Stage primaryStage) {
        this.primaryStage = primaryStage;
        primaryStage.setScene(new Scene(new Label("Hello, World!")));
        primaryStage.show();

        // Keep the JavaFX runtime running in the background
        Platform.setImplicitExit(false);
    }

    public void showNewWindow() {
        Platform.runLater(() -> {
            Stage newWindow = new Stage();
            newWindow.setScene(new Scene(new Label("New Window")));
            newWindow.show();
        });
    }

    public static void main(String[] args) {
        launch(args);
    }
}</code>
Nach dem Login kopieren

Alternative Ansätze:

  • Verwendung von JFXPanel: Anstelle eines Anwendung können Sie ein JFXPanel verwenden. Das Verwendungsmuster bleibt jedoch ähnlich.
  • Verwendung von Platform.startup(): Java 9 führte Platform.startup() ein, um die JavaFX-Laufzeit ohne eine Anwendungsklasse und einen launch()-Aufruf auszulösen. Es gelten ähnliche Einschränkungen wie bei launch().

Schlussfolgerung (optional):

Durch die Einhaltung dieser Richtlinien können Sie das „Application Launch Must Not“ vermeiden Ausnahme „Mehr als einmal aufgerufen werden“ und zeigt regelmäßig Fenster in Ihrer JavaFX-Anwendung an.

Das obige ist der detaillierte Inhalt vonSo vermeiden Sie die Ausnahme „Der Anwendungsstart darf nicht mehr als einmal aufgerufen werden' in JavaFX. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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