HOWTO · Java

창의 JavaFX 센터 텍스트

이 튜토리얼은 JavaFX의 창에서 텍스트를 가운데에 맞추는 방법을 보여줍니다.

Pane 클래스에서 노드를 중앙에 배치하는 기능은 없지만 노드를 중앙에 배치하려면 StackPane을 사용할 수 있습니다. 이 튜토리얼은 StackPane을 사용하여 JavaFX에서 텍스트 또는 기타 노드를 중앙에 배치하는 방법을 보여줍니다.

창의 JavaFX 센터 텍스트

StackPane은 자식을 다른 사람과 쌓기 위해 레이아웃하는 데 사용되는 일종의 창입니다. StackPane을 정렬하여 창의 노드를 중앙에 배치할 수 있습니다.

StackPane의 기본 정렬 속성은 Pos.CENTER입니다. JavaFX StackPaneJavaFX.scene.layout.StackPane에서 인스턴스화됩니다.

StackPane에는 다른 목적으로 사용되는 두 개의 생성자가 있습니다. StackPane의 구문은 다음과 같습니다.

StackPane Demo = new StackPane();

StackPane의 생성자는 다음과 같습니다.

  • StackPane(): 기본 Pos.CENTER 정렬로 레이아웃이 생성됩니다.
  • StackPane(Node…. nd): 레이아웃이 기본 정렬로 생성됩니다.

정렬 속성은 StackPane의 노드를 정렬하는 데 사용할 수 있습니다. StackPane이 정렬과 함께 작동하는 세 가지 방법이 있습니다.

  • getAlignment(): 정렬 속성 값을 가져오는 메서드입니다.
  • setAlignment(Posvalue): 정렬 속성 값을 설정하는 메서드입니다.
  • setAlignment(Node 자식, 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에 텍스트와 원을 만들고 중심 위치의 기본 정렬을 사용합니다. 출력 참조:

창의 가운데 텍스트