Como chamar launch() mais de uma vez em Java
O método de inicialização do aplicativo JavaFX, launch(), foi projetado para ser chamado apenas uma vez por aplicação. Tentar chamar launch() mais de uma vez resulta em um erro "IllegalStateException".
Solução: agrupar a criação de janela subsequente em Platform.runLater()
Em vez de chamar launch() várias vezes, considere a seguinte abordagem:
Código de exemplo:
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();
});
}
}
Nota:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3