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 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