[java] JavaFX 레이아웃 위치 및 크기 조정

JavaFX는 풍부한 사용자 인터페이스를 구현하기 위한 도구로서, 다양한 레이아웃을 제공합니다. 이 레이아웃을 활용하여 UI 요소들의 위치와 크기를 조정할 수 있습니다. 이번 포스트에서는 JavaFX에서 레이아웃을 조정하는 방법에 대해 알아보겠습니다.

1. AnchorPane

AnchorPane은 레이아웃 컨테이너 중 하나로, 각 UI 컨트롤의 위치를 상대적으로 지정할 수 있는 방식입니다. AnchorPane을 사용하여 UI 요소의 위치와 크기를 조정하는 방법은 다음과 같습니다.

AnchorPane anchorPane = new AnchorPane();

Button button = new Button("Click me");
AnchorPane.setTopAnchor(button, 20.0);
AnchorPane.setLeftAnchor(button, 20.0);
anchorPane.getChildren().add(button);

위의 예제 코드에서 AnchorPane.setTopAnchor()AnchorPane.setLeftAnchor() 메서드를 사용하여 버튼의 상단과 왼쪽 위치를 지정하고 있습니다. 이렇게 설정된 값은 anchorPane에 추가된 메서드를 통해 실제로 적용됩니다.

2. GridPane

GridPane은 그리드 형태의 레이아웃으로, 행과 열을 기반으로 UI 컨트롤을 배치할 수 있습니다. GridPane을 사용하여 UI 요소의 위치와 크기를 조정하는 방법은 다음과 같습니다.

GridPane gridPane = new GridPane();

Button button1 = new Button("Button 1");
GridPane.setConstraints(button1, 0, 0);
gridPane.getChildren().add(button1);

Button button2 = new Button("Button 2");
GridPane.setConstraints(button2, 1, 0);
gridPane.getChildren().add(button2);

위의 예제 코드에서 GridPane.setConstraints() 메서드를 사용하여 버튼의 위치를 지정하고 있습니다. 첫 번째 인수는 해당 컨트롤이 배치될 열의 번호이고, 두 번째 인수는 해당 컨트롤이 배치될 행의 번호입니다.

3. VBox와 HBox

VBox와 HBox는 수직, 수평 방향으로 유연한 레이아웃을 구성할 수 있는 컨테이너입니다. VBoxHBox를 사용하여 UI 요소의 위치와 크기를 조정하는 방법은 다음과 같습니다.

VBox vBox = new VBox();

Button button1 = new Button("Button 1");
vBox.getChildren().add(button1);

Button button2 = new Button("Button 2");
vBox.getChildren().add(button2);

위의 예제 코드에서는 VBox 컨테이너에 버튼을 추가하는 방식으로 위에서 아래로 순차적으로 UI 요소를 배치합니다. HBox의 경우에는 반대로 좌에서 우로 순차적으로 UI 요소를 배치하는 방식입니다.

결론

JavaFX에서는 다양한 레이아웃을 활용하여 UI 요소의 위치와 크기를 조정할 수 있습니다. AnchorPane, GridPane, VBox, HBox 등을 적절히 조합하여 사용하면 사용자 인터페이스를 자유롭게 디자인할 수 있습니다.