>  기사  >  Java  >  JavaFX에서 \"응용 프로그램 실행을 두 번 이상 호출하면 안 됩니다\" 예외를 방지하는 방법

JavaFX에서 \"응용 프로그램 실행을 두 번 이상 호출하면 안 됩니다\" 예외를 방지하는 방법

DDD
DDD원래의
2024-10-24 06:01:02206검색

How to Avoid

Java에서 "Application Launch를 두 번 이상 호출하면 안 됩니다" 예외를 처리하는 방법

launch()를 두 번 이상 호출 JavaFX 애플리케이션에서는 허용되지 않습니다. 이는 JavaFX 문서에 명시적으로 명시되어 있습니다.

두 번 이상 호출하면 안 됩니다. 그렇지 않으면 예외가 발생합니다.

창을 주기적으로 표시하기 위한 제안

launch()를 여러 번 호출하는 대신 다음 단계를 따르세요.

  1. Application.launch()를 한 번 호출하세요.
  2. Platform을 사용하여 JavaFX 런타임을 백그라운드에서 계속 실행하세요. .setImplicitExit(false).
  3. 다른 창을 표시해야 하는 경우 Platform.runLater() 내에서 창 show() 호출을 실행하여 JavaFX 애플리케이션 스레드에서 처리되는지 확인하세요.

구현 예:

<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>

대체 접근 방식:

  • JFXPanel 사용: 대신 응용 프로그램에서는 JFXPanel을 사용할 수 있습니다. 그러나 사용 패턴은 여전히 ​​유사합니다.
  • Platform.startup() 사용: Java 9에서는 Application 클래스 및 launch() 호출 없이 JavaFX 런타임을 트리거하기 위해 Platform.startup()을 도입했습니다. launch()와 유사한 제한 사항이 적용됩니다.

결론(선택 사항):

이러한 지침을 준수하면 "애플리케이션 실행 금지" 오류를 피할 수 있습니다. 두 번 이상 호출됨" 예외가 발생하고 JavaFX 애플리케이션에서 정기적으로 창이 표시됩니다.

위 내용은 JavaFX에서 \"응용 프로그램 실행을 두 번 이상 호출하면 안 됩니다\" 예외를 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.