JavaFXでラベルに画像(イメージ)を表示する方法について記載します。
ラベルに画像を表示する方法
画像を表示する手順は、次のようになります。
① 画像を読み込む
② イメージを背景として設定する
③ ラベルに②の背景を設定する
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
public class Main extends Application { public static void main(String[] args){ Application.launch(args); } @Override public void start(Stage pStage) throws Exception { // ① 画像を読み込む Image img = new Image(Paths.get("/Users/image/image_512.JPG").toUri().toString()); // ② イメージを背景として設定する BackgroundImage bkImg = new BackgroundImage(img, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, null, null); // ③ ラベルに②の背景を設定する Label lblImg = new Label(); lblImg.setMinSize(img.getWidth(), img.getHeight()); // ラベルのサイズをイメージと同じにする lblImg.setBackground(new Background(bkImg)); pStage.setTitle("ラベル"); pStage.setScene(new Scene(lblImg)); pStage.setWidth(img.getWidth()); pStage.setHeight(img.getHeight()); pStage.show(); } } |
BackgroundImageクラスのコンストラクタでは、5つの引数を渡しています。
1 2 3 4 |
BackgroundImage bkImg = new BackgroundImage(img, BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT, null, null); |
第2、3引数は、余白がある場合に読み込んだ画像を繰り返し表示させるという設定になります。
第2引数:X軸方向へのリピート
第3引数:Y軸方向へのリピート
それぞれ null を指定することができますが、null を指定するとデフォルトの設定が使用され、余白がある場合、繰り返し表示されます。
上記の例では、BackgroundRepeat.NO_REPEAT を指定して余白があっても繰り返し表示しないように設定しています。