リンクしたドキュメントには、次のように記載されていますstage.close()
。
このステージを閉じます。この呼び出しは、hide()と同等です。
とhide()
同等でステージclose()
を閉じてから、ステージも閉じます。close()
hide()
アプリケーションのすべてのステージが非表示になると(または、同じことであるため、必要に応じて閉じられると)、アプリケーションは終了します。紛らわしいですが、それはJavaFXチームがアクションに名前を付けて実装することを決定した方法です。
必要に応じて、Platform.setImplicitExit(boolean)メソッドを使用して、最後のウィンドウを閉じたり非表示にしたりしたときにアプリケーションを終了するデフォルトの動作をオフに切り替えることができます。
次に、ステージを完全に閉じずにステージを非表示にするにはどうすればよいかという問題が発生します。
hide()
ウィンドウに関連するすべてのリソースを解放する場合のように、または同等の方法でステージが「完全に」閉じられるとは思いませんclose()
(どこかでステージへの参照を保持している限り)。ステージが見えないようにするだけだと思います。おそらく電話をかけshow()
た後に電話close()
をかけることができ、ウィンドウが再び表示される可能性があります(私はそれを試しませんでした)。ただし、そうする場合は、hide()
よりも呼び出す方が直感的ですclose()
。
私の推測では、アプリケーションでステージへの参照を保持しなくなり、ステージが閉じているか非表示になっている場合、JVMは、アルゴリズムがそれらのリソースをガベージコレクションすることを決定するたびに、ステージに関連するすべてのリソースを解放する可能性があります(ここでもこれをテストしないでください。そのように機能しない可能性があります)。