JavaFX ペイン内のテキストを中央に配置する

Sheeraz Gul 2024年2月15日
JavaFX ペイン内のテキストを中央に配置する

ノードを Pane クラスの中央に配置する機能はありませんが、ノードを中央に配置する場合は、StackPane を使用できます。このチュートリアルでは、StackPane を使用してテキストまたはその他のノードを JavaFX の中央に配置する方法を示します。

JavaFX ペインでテキストをセンタリングする

StackPane は、子を他の子と積み重ねるためにレイアウトするために使用される一種のペインです。StackPane を調整して、ノードをペインの中央に配置できます。

StackPane のデフォルトの配置プロパティは Pos.CENTER です。JavaFX StackPane は、JavaFX.scene.layout.StackPane からインスタンス化されます。

StackPane には、異なる目的で使用される 2つのコンストラクターがあります。StackPane の構文は次のとおりです。

StackPane Demo = new StackPane();

StackPane のコンストラクターは次のとおりです。

  • StackPane():レイアウトはデフォルトの Pos.CENTER 配置で作成されます。
  • StackPane(Node…. nd):レイアウトはデフォルトの配置で作成されます。

配置プロパティを使用して、StackPane 内のノードを配置できます。StackPane がアライメントを操作するには、次の 3つの方法があります。

  • getAlignment():このメソッドは、アライメントプロパティ値を取得するために使用されます。
  • setAlignment(Posvalue):このメソッドは、配置プロパティ値を設定するために使用されます。
  • setAlignment(Node child, Posvalue):このメソッドは、StackPane の子ノードの配置プロパティ値を設定するために使用されます。

StackPane を使用して、ノードのテキストをペインの中央に配置する例を試してみましょう。例を参照してください:

package delftstack;

import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Sphere;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class JavaFx_StackPane extends Application {
  @Override
  public void start(Stage DemoStage) {
    // Create the text to be centered
    Text Demotext = new Text("Centered Text");
    // Font for the text
    Demotext.setFont(Font.font(null, FontWeight.BOLD, 20));
    // color of the text
    Demotext.setFill(Color.BLUE);
    // position of the text
    Demotext.setX(20);
    Demotext.setY(50);
    // circle
    Circle DemoCircle = new Circle(700, 500, 300);
    // fill color
    DemoCircle.setFill(Color.LIGHTBLUE);
    DemoCircle.setStroke(Color.BLACK);
    // Now Create a Stackpane
    StackPane DemoStackPane = new StackPane();
    // Margin for the above circle
    DemoStackPane.setMargin(DemoCircle, new Insets(50, 50, 50, 50));
    ObservableList li = DemoStackPane.getChildren();
    // Add child nodes to the pane
    li.addAll(DemoCircle, Demotext);
    // Create a scene
    Scene DemoScene = new Scene(DemoStackPane);
    // Set title
    DemoStage.setTitle("Centered Text Sample");
    // Add scene to the stage
    DemoStage.setScene(DemoScene);
    // Display the results
    DemoStage.show();
  }
  public static void main(String args[]) {
    launch(args);
  }
}

このコードは、StackPane にテキストと円を作成し、中心位置のデフォルトの配置を使用します。出力を参照してください:

ペインの中央のテキスト

著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

関連記事 - Java JavaFX