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); 라인을 통해 라인의 자식 노드를 정렬했습니다. 그리드.
이 경우에는 자식 노드에만 레이블이 있습니다. 위의 예제 코드를 컴파일하고 사용자 환경에서 실행하면 아래와 같은 출력을 얻을 수 있습니다.
출력:
사용 가능한 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가 라이브러리 및 패키지의 자동 포함을 지원하지 않는 경우 기억하십시오. 그런 다음 컴파일하기 전에 이러한 필수 라이브러리 및 패키지를 수동으로 포함해야 할 수 있습니다.