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

MD Aminul Islam 2024년2월15일
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가 라이브러리 및 패키지의 자동 포함을 지원하지 않는 경우 기억하십시오. 그런 다음 컴파일하기 전에 이러한 필수 라이브러리 및 패키지를 수동으로 포함해야 할 수 있습니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - Java JavaFX