So rufen Sie launch() mehr als einmal in Java auf
Die JavaFX-Anwendungsstartmethode launch() ist für den Aufruf konzipiert nur einmal pro Bewerbung. Der Versuch, launch() mehr als einmal aufzurufen, führt zu einem „IllegalStateException“-Fehler.
Lösung: Schließen Sie die nachfolgende Fenstererstellung in Platform.runLater() ein
Anstatt aufzurufen Wenn Sie launch() mehrmals ausführen, sollten Sie den folgenden Ansatz in Betracht ziehen:
Beispielcode:
<code class="java">public class Wumpus extends Application { private static final Insets SAFETY_ZONE = new Insets(10); private Label cowerInFear = new Label(); private Stage mainStage; @Override public void start(final Stage stage) { mainStage = stage; mainStage.setAlwaysOnTop(true); Platform.setImplicitExit(false); cowerInFear.setPadding(SAFETY_ZONE); cowerInFear.setOnMouseClicked(event -> Platform.exit()); stage.setScene(new Scene(cowerInFear)); } public static void main(String[] args) { launch(args); // Another window can be created here by wrapping its creation // and display in a Platform.runLater() block. Platform.runLater(() -> { Stage newStage = new Stage(); newStage.setScene(new Scene(new Label("Another Window"))); newStage.show(); }); } }</code>
Hinweis:
Das obige ist der detaillierte Inhalt vonWie erstelle ich mehrere JavaFX-Windows, ohne launch() aufzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!