JavaFX StageStyle
JavaFXではステージのスタイルをいくつか選べるのですが、それぞれどんな表示になるのか、いま一つわからなかったので各スタイルを実行してみました。
設定できるのは5つ。それぞれ説明してゆきます。
Stageスタイル設定のしかた
Stageのコンストラクタで、StageStyleを指定することで設定できます。
アプリでは、startメソッドの初めに下記の一文を入れます。
stage = new Stage( StageStyle.UTILITY );
他のStageから開く子Stageの場合はこんな感じ。
super( StageStyle.UTILITY );
設定可能なStyle
DECORATED
不透明な白い背景とプラットフォームの装飾を持つ標準のStageスタイル。
特に何も指定しないとこのスタイルになります。上部の修飾部分には、アイコン、タイトル、最小化ボタン、最大化ボタン楽天 、クローズボタンが並びます。
TRANSPARENT
TRANSPARENT
透明な背景を持ち、装飾のないStageスタイル。
上部に何も表示されません。なので閉じることもできません。マウスで移動も不可。
UNDECORATED
不透明な白い背景を持ち、装飾のないStageスタイル。
TRANSPARENTと同様ですが、背景の違いがあります。ここで示したものは違いが判りません。
UNIFIED
プラットフォームの装飾を持ち、クライアント領域と装飾との間の境界を排除したStageスタイルを定義。
上部の装飾はDECORATED(デフォルト)と同じになりますが、下のボタンやPaneを置く部分との境界が無くなります。
下のプログラムでは他のスタイルと同様にボタンを配置しているのですが、見えなくなっています。
UTILITY
ユーティリティ・ウィンドウに使用される、不透明な白い背景およびプラットフォームの最小限の装飾を持つStageスタイルを定義。
装飾部分にはタイトルとクローズボタンだけが表示されます。
サンプルソースコード
簡単なコードですが、表示試験に用いたものです。
package tomojavalib.swingfx;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class StageStyleTest extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start( Stage stage ) throws Exception {
//stage = new Stage( StageStyle.DECORATED );
//stage = new Stage( StageStyle.TRANSPARENT );
//stage = new Stage( StageStyle.UNDECORATED );
//stage = new Stage( StageStyle.UNIFIED );
stage = new Stage( StageStyle.UTILITY );
stage.setTitle("StageStyle.UTILITY");
BorderPane pane = new BorderPane();
Scene scene = new Scene(pane, 320, 240);
Button b = new Button("ボタン");
pane.setCenter(b);
stage.setScene(scene);
stage.show();
}
}
最終更新日: 2018-02-22 07:55:30