JavaFX 背景色の設定

コントロールの背景色は「setBackground」メソッドで設定する。

< setBackgroundメソッド>>
public final void setBackground(Background value)

例)ラベルの背景色を青(BLUE)で塗り潰す

Label lable = new Lable("LABLE BACKGROUND");
      lable . setBackground( new Background( new BackgroundFill( Color.BLUE , new CornerRadii( 0 ) , Insets.EMPTY  )));
< クラスBackground >>

Backgroundクラスは背景を設定するためのクラスです。
「塗り潰し」又は「イメージ」を選択可能することが可能で4種類のコンストラクタがある。

public Background( BackgroundFill… fills)
public Background( BackgroundImage… images)
public Background( List fills , List images)
public Background( BackgroundFill[] fills , BackgroundImage[] images)

塗り潰しの場合は、引数が「 BackgroundFill 」のコンストラクタを使用する。
重ねりする場合は、配列又は、リストで複数の「 BackgroundFill 」を指定する。

public Background( BackgroundFill… fills)

イメージの場合は、引数が「 BackgroundImage 」のコンストラクタを使用する。
イメージを重ねる場合は、配列又は、リストで複数の「 BackgroundImage 」を指定する。

public Background( BackgroundImage… images)

塗り潰しと、イメージを同時に指定する場合は、下記 何れかコンストラクタを使用する。
同時に指定した場合は、塗り潰し → イメージの順に描画される。

public Background( List fills , List images)
public Background( BackgroundFill[] fills , BackgroundImage[] images)
<< クラスBackgroundFill >>

背景を「塗り潰す」際に、塗り潰しの内容を指定するクラスです。

BackgroundFill(Paint fill, CornerRadii radii, Insets insets)

・Paint fill     → 背景色を指定する。グラデーションなども指定することも可能
・CornerRadii radii → 塗り潰しの枠の角確度を指定する。
・Insets insets   → 余白を指定する。

<< クラスBackgroundImage >>

背景に表示するイメージを指定するクラスです。

BackgroundImage(Image image, BackgroundRepeat repeatX, BackgroundRepeat repeatY, BackgroundPosition position, BackgroundSize size)

・Image image
 → 配置するイメージファイルを指定する。

・BackgroundRepeat repeatX
・BackgroundRepeat repeatY
 → イメージ配置方法を指定する。repeatXは横方向/repeatY縦方向。

・BackgroundRepeat.REPEAT
 → 基準位置から、画像を並べる(画像が入りきらない場合は途中で切れる)

・BackgroundRepeat.NO_REPEAT
 → 基準位置に画像を一つだけ配置する。

・BackgroundRepeat.ROUND
 → イメージが途中で切れないサイズに自動調整してくれる。

・BackgroundPosition position
 → イメージを配置する際の基準位置を指定する。
   ・BackgroundPosition.DEFAULT → 基準位置をデフォルト(左上)に設定する。
   ・BackgroundPosition.CENTER → 基準位置を中央に設定する。

・BackgroundSize size
 → イメージのサイズを指定する。
 ・指定したイメージのサイズをそのまま使用する場合はBackgroundSize.DEFAULTを指定。
 ・指定したイメージのサイズを変更する場合は、BackgroundSizeのインスタンスを作成して指定する。

<< クラスBackgroundSize >>

イメージのサイズ指定するクラスです。

public BackgroundSize( double width , double height , boolean widthAsPercentage , boolean heightAsPercentage , boolean contain , boolean cover )

・double width
 → イメージサイズを横幅を指定する。

・double height
 → イメージサイズを縦幅を指定する。

・boolean widthAsPercentage
・boolean heightAsPercentage
 → 上記「width/height」の値が、ピクセル(true)/パーセンテージ(false)であるか
   を指定する。
   パーセンテージ(false)の場合は、1以下(0.01~1)の値を指定する。

・boolean contain
 → リージョン内に収まるようにイメージのサイズを最大化する必要があるか否かを
   指定する。

・boolean cover
 → リージョンをカバーするようにイメージのサイズを設定する必要があるかどうか
   を指定する。

■使用例

例1)単色の背景

青 / 角の丸み:0 / 余白なし

Label label = new Label("ラベル");
label.setBackground(
	new Background(
		new BackgroundFill( Color.BLUE  , new CornerRadii(0)   , Insets.EMPTY )
	)
);
実行結果
例2)単色の重ね塗り

青 / 角の丸み: 0 、余白なし
赤 / 角の丸み:45 、余白:20

Label label = new Label("ラベル");
label.setBackground(
	new Background(
		new BackgroundFill( Color.BLUE , new CornerRadii(0)  , Insets.EMPTY ),
		new BackgroundFill( Color.RED  , new CornerRadii(45) , new Insets(20,20,20,20) )
	)
);

実行結果

コメント