2012-04-18 32 views
24

私はJavaFX 2.0でアプリケーションを作成しています。私のメインウィンドウからいくつかの設定で新しいウィンドウを開始しています。私は設定を調整した後、 "Save changes"のようなボタンを押したいと思います。JavaFX 2.0:ステージを閉じる(ウィンドウ)

このボタンを使用して、変更を保存してウィンドウを閉じることができます。 閉じることによって、私はそれをバックグラウンドに置いたり、可視性を設定したりしないで、殺すことを意味します。あなたはそれを閉じていない、唯一のウィンドウを非表示にする方法を隠す()、に似て見ることができるように は、私は方法Stage.close()

http://docs.oracle.com/javafx/2.0/api/javafx/stage/Stage.html

について読みました。

Q:誰でも方法を知っているか、ウィンドウを閉じるのに役立つコードがありますか?

すべてのサポートをよろしくお願いいたします。 ありがとう!

+0

http://stackoverflow.com/questions/13567019/close-fxml-window-by-code-javafx説明するための –

答えて

41

ドキュメントあなたリンク状態stage.close()こと:

はこのステージを閉じます。この呼び出しはhide()と同じです。 hide()として

close()close()に相当するステージを閉じ、その後hide()もステージを閉じます。

アプリケーション内のすべてのステージが非表示になっている場合(または同じ場合があるため、好きな場合は閉じられます)、アプリケーションは終了します。混乱していますが、わかっていますが、これはJavaFXチームがアクションの名前を付けて実装する方法にすぎません。

Platform.setImplicitExit(boolean)メソッドを使用すると、最後のウィンドウが閉じられているか隠されているときにアプリケーションを終了するデフォルトの動作をオフにすることができます。

+0

感謝それは本当に私の理解に役立った! :) – haakonlu

+0

Window.hide()がStage.hide()と同等で、Stage.close()がステージの唯一のウィンドウの場合はそれに相当しますか?だから私はステージへの参照を渡す必要はありません。 –

+0

私はあなたのコメントstefanを理解していません。代わりに新しい質問を作成することもできます。 – jewelsea

15

これは(Nodeのインポートと)私のために完全に働いた:

((Node)(event.getSource())).getScene().getWindow().hide(); 
+0

私はmenuitem ActionEventからウィンドウを隠そうとしていますが、 "menuitemをNodeにキャストできません"という例外が発生しています。ここに例外はあります '原因:java.lang.ClassCastException:javafx.scene.control.MenuItemはjavafx.scene.Node'にキャストできません –

関連する問題