1. ホーム
  2. java

[解決済み] JavaFXアプリケーションをウィンドウクローズ時に閉じるには?

2023-05-18 12:42:16

質問

Swingでは、単純に setDefaultCloseOperation() を使って、ウィンドウを閉じたときにアプリケーション全体をシャットダウンすることができます。

しかし、JavaFXでは、同等のものを見つけることができません。複数のウィンドウを開いていて、ウィンドウが閉じられたらアプリケーション全体を閉じたいのです。JavaFXでそれを行う方法は何ですか?

編集してください。

をオーバーライドできることは理解しました。 setOnCloseRequest() をオーバーライドして、ウィンドウを閉じるときに何らかの操作を実行することができることを理解しました。問題は、アプリケーション全体を終了させるために、どのような操作を行うべきかということです。

stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
    @Override
    public void handle(WindowEvent event) {
        stop();
    }
});

stop() で定義されたメソッド Application クラスは何もしません。

どのように解決するのですか?

アプリケーションが自動的に停止するのは、最後の Stage が閉じられると、アプリケーションは自動的に停止する。このとき stop() メソッドの Application クラスが呼び出されるので、それに相当するものは必要ありません。 setDefaultCloseOperation()

その前にアプリケーションを停止させたい場合は Platform.exit() で、例えばあなたの onCloseRequest を呼び出します。

の javadoc ページで、これらの情報をすべて得ることができます。 Application : http://docs.oracle.com/javafx/2/api/javafx/application/Application.html