俺だけの秘密基地 IT系技術局
Java関連技術情報セクション

Stageについての考察

Stageスタイル

Stageのスタイルは次の何れから選択することができます。スタイルとは背景の「透明」「不透明」の選択、および「最小化ボタン、最大化ボタン、閉じるボタン」の有無を選択することを意味します。スタイルの選択はinitStyleメソッドに下記のパラメータを指定することで行います。

StageStyle.DECORATED
: 不透明な白い背景。プラットフォームの装飾を持つStage。
StageStyle.UNDECORATED
: 不透明な白い背景。装飾のないStage。
StageStyle.TRANSPARENT
: 透明な背景を。装飾のないStage。
StageStyle.UTILITY
: 不透明な白い背景。プラットフォームの最小限の装飾を持つStage。

※下記サンプルソースでは、実行結果をわかりやすくするために、Scene、Labelを配置しています。

サンプルソース

【 サンプルソース No.1 Stageスタイル 】

実行結果

【StageStayle.DECORATED】
不透明な白い背景で、プラットフォームのデフォルト装飾を持つ。「タイトルバー」および「最小化」「最大化」「閉じる」のボタンが配置される。デフォルトのスタイル。
【StageStayle.UNDECORATED】
不透明な白い背景で、タイトルバーなし。
※「閉じるボタン」がないため、アプリケーションを終了する際の手段を自作する必要があることに注意
【StageStyle.TRANSPARENT】
透明な白い背景で、タイトルバーなし。
※サンプルでは、Sceneの背景色で透明に見えないが、Stageの背景は透明になっている。
※「閉じるボタン」がないため、アプリケーションを終了する際の手段を自作する必要があることに注意
【StageStayle.UTILITY】
不透明な白い背景で「タイトルバー」および「閉じる」ボタンのみが配置される。

Stageオーナー

Stageは、オプションでオーナーを設定することが可能です。オーナーのStage(親)が閉じられると、所有しているすべてのStage(子)も全て閉じられます。

サンプルソース

【 サンプルソース No.2 Stageオーナー 】

実行結果

【 サンプルソース No.2 実行結果】

※prentStageを閉じると、全てのStageが閉じる。

モダリティ

Stage(ウィンドウ)に、モダリティの設定をすることが出来ます。設定は下記の3つから選択します。

Modality.NONE
通常のウィンドウ。他のウィンドウをブロックしない。※デフォルト設定
Modality.WINDOW_MODAL
WINDOW_MODALを設定したStageの、オーナーStage(親)から、所有関係のある上位Stageの入力をブロックする。下記の図はWINDOW_MODALを設定した場合に、入力がブロックされるStageの関係を示しています。
【Modality.WINDOW_MODAL】

※StageAとStageBに所有関係はありませんので、StageBはブロックされません

Modality.APPLICATION_MODAL
APPLICATION_MODALを設定したStageおよび、その子階層Stage以外の入力イベントをブロックする。下記の図はAPPLICATION_MODALを設定した場合に、入力がブロックされるStageの関係を示しています。
【Modality.WINDOW_MODAL】

※StageAとStageBに所有関係はありませんがAPPLICATION_MODALを設定したStageと当該Stageが所有するStage以外は全てブロックされます。


サンプルソース

【 サンプルソース No.3 Stageモダリティ 】

実行結果

【 サンプルソース No.3 実行結果】

上記のプログラムソースでは、Stage_2_2、Stage_2_3以外はブロックされます。

※注意 モダリティを設定するStageはshowメソッドのコール前に設定すること。
(showメソッドの後で設定するとExceptionが発生します)




Back JavaFX Menu