JavaFXでラベルを表示する方法について記載します。ラベルには文字やイメージを表示することができます。
目次
ラベルを表示する方法
1. ラベルに文字を表示する方法
ラベルに文字を表示するには、次の方法があります。
・Labelインスタンス生成時に、コンストラクタの引数に渡す。
・LableのsetTextメソッドを使用して設定する。
実行例( コンストラクタ )
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 |
import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.text.Font; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args){ Application.launch(args); } @Override public void start(Stage pStage) throws Exception { // コンストラクタで表示文字列を渡す Label lblMsg = new Label("コンストラクタで設定"); lblMsg.setFont(new Font(30)); // フォントサイズを設定 lblMsg.setAlignment(Pos.CENTER); pStage.setTitle("ラベル"); pStage.setScene(new Scene(lblMsg)); pStage.setWidth(350); pStage.setHeight(200); pStage.show(); } } |
実行例( setText )
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 |
import javafx.application.Application; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.text.Font; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args){ Application.launch(args); } @Override public void start(Stage pStage) throws Exception { Label lblMsg = new Label(); lblMsg.setText("setTextで設定"); lblMsg.setFont(new Font(30)); // フォントサイズを設定 lblMsg.setAlignment(Pos.CENTER); pStage.setTitle("ラベル"); pStage.setScene(new Scene(lblMsg)); pStage.setWidth(350); pStage.setHeight(200); pStage.show(); } } |
2. ラベルにイメージ(画像)を表示する方法
画像を表示する手順は、次のようになります。
① 画像を読み込む
② イメージを背景として設定する
③ ラベルに②の背景を設定する
実行例
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 を指定して余白があっても繰り返し表示しないように設定しています。