HOWTO · Java

JavaFX의 그리드 및 자식 노드 정렬

이 자습서에서는 JavaFX의 그리드 및 자식 노드 정렬에 대해 설명합니다.

이 페이지의 내용

JavaFX에는 GridPane이라는 UI 구성 요소가 있습니다. 이 UI 구성 요소를 통해 모든 자식 노드는 열과 행의 그리드 형태로 배열됩니다.

이 구성 요소에 필요한 패키지는 javafx.scene.layout입니다.

이 기사에서는 정렬에 대해 논의하고 더 나은 이해를 위해 이 주제에 대한 예를 설명합니다.

JavaFX의 그리드 및 자식 노드 정렬

아래 예에서는 레이블이 있는 그리드 창을 만들었습니다. 우리 예제의 코드는 아래와 같습니다.

import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class FxGrid extends Application {
  @Override
  public void start(Stage stage) {
    Label lbl = new Label("Simple grid example ..."); // Creating a label with text
    GridPane gridPane = new GridPane(); // Creating a Grid Pane

    gridPane.setPadding(new Insets(10, 10, 10, 10)); // Set the padding of the gridpane

    // Set the vertical and horizontal gaps between the columns
    gridPane.setVgap(15);
    gridPane.setHgap(15);

    gridPane.add(lbl, 0, 1); // Adding the label to the grid pane
    gridPane.setAlignment(Pos.CENTER); // Align the grid pane
    GridPane.setHalignment(lbl, HPos.RIGHT); // Setting the alignment for the child node of grid
                                             // pane

    Scene scene = new Scene(gridPane, 300, 300); // Creating a scene  with necessary size

    stage.setTitle("Grid Alignment Example"); // Setting title to the Application

    stage.setScene(scene); // Adding scene to the stage

    stage.show(); // Displaying the contents of the stage
  }
  public static void main(String args[]) {
    launch(args); // Launching the application
  }
}

우리는 이미 위에서 각 코드 줄의 목적에 대해 설명했습니다. 이제 여기에서 주제의 주요 부분을 논의할 것입니다.

gridPane.setVgap(15); gridPane.setHgap(15);, 각 열에 대해 수직 및 수평 간격을 생성했습니다. 또한 gridPane.setPadding(new Insets(10, 10, 10, 10)); 라인을 통해 패딩을 추가했습니다.

가장 중요한 부분은 그리드 창과 자식 노드를 별도로 정렬하는 것입니다. 코드에서 gridPane.setAlignment(Pos.CENTER); 라인을 통해 그리드 창을 정렬하고 GridPane.setHalignment(lbl, HPos.RIGHT); 라인을 통해 라인의 자식 노드를 정렬했습니다. 그리드.

이 경우에는 자식 노드에만 레이블이 있습니다. 위의 예제 코드를 컴파일하고 사용자 환경에서 실행하면 아래와 같은 출력을 얻을 수 있습니다.

출력:

JavaFX GridPane 정렬 출력

사용 가능한 Hbox 정렬

아래에는 그리드 창의 자식에 대해 사용 가능한 모든 정렬이 나열되어 있습니다. setHalignment() 메소드 내에서 설정해야 합니다.

이 방법의 일반적인 형식은 setHalignment( ChildNode, Alignment)입니다.

선형 설명
HPos.BASELINE_LEFT 기준선 수직 정렬, 왼쪽 수평 정렬
HPos.BASELINE_CENTER 기준선 수직 정렬, 중앙 수평 정렬
HPos.BASELINE_RIGHT 기준선 수직 정렬, 오른쪽 수평 정렬
HPos.BOTTOM_LEFT 세로 맞춤 아래쪽, 가로 맞춤 왼쪽
HPos.BOTTOM_CENTER 수직 정렬 하단, 수평 정렬 중앙
HPos.BOTTOM_RIGHT 수직으로 아래쪽 정렬, 수평으로 오른쪽 정렬
HPos.CENTER_LEFT 세로로 가운데 맞춤, 가로로 왼쪽 맞춤
HPos.CENTER 세로로 가운데 맞춤, 가로로 가운데 맞춤
HPos.CENTER_RIGHT 세로로 가운데 맞춤, 가로로 오른쪽으로 맞춤
HPos.TOP_LEFT 수직으로 상단 정렬, 수평으로 왼쪽 정렬
HPos.TOP_CENTER 수직으로 상단 정렬, 수평으로 중앙 정렬
HPos.TOP_RIGHT 수직으로 위쪽 정렬, 수평으로 오른쪽 정렬

IDE가 라이브러리 및 패키지의 자동 포함을 지원하지 않는 경우 기억하십시오. 그런 다음 컴파일하기 전에 이러한 필수 라이브러리 및 패키지를 수동으로 포함해야 할 수 있습니다.