04. JavaFX 컨테이너 (Containers)

컴포넌트들을 일사불란하게 정리해 주는 보관함 패널들인 컨테이너(Layout Panes)를 마스터해 봅시다! 🗃️ 용도와 정렬 규칙에 맞춰 최적의 배치 그릇을 고르는 안목을 기르게 됩니다.


1. JavaFX 컨테이너 한눈에 비교하기

자바 JavaFX는 화면 정렬 방식에 따라 아래와 같이 정렬 특성이 뚜렷한 다양한 컨테이너 그릇(Pane 자식들)을 제공합니다.

JavaFX 컨테이너 비교

컨테이너 이름 배치 메커니즘 (정렬 방식) 추천 용도
HBox / VBox 수평(H) 또는 수직(V) 한 방향으로 정렬 버튼 모음 줄, 입력란 목록 등 단순 선형 배치
AnchorPane 고정 핀(layoutX, layoutY) 좌표로 절대 위치 정렬 크기를 변경할 수 없는 단순 로그인창, 카드 뷰
BorderPane 화면을 5개 구역(상, 하, 좌, 우, 중앙)으로 쪼갬 전형적인 데스크톱 메인 프로그램 레이아웃
FlowPane 흐르듯이 배치하다 공간이 좁아지면 줄 바꿈 정렬 이미지 갤러리 리스트, 동적 버튼 나열
GridPane 사물함 격자 셀 좌표로 자유로운 바둑판 정렬 유연한 행/열 정렬이 필요한 회원가입 입력 폼
StackPane 카드를 한 장씩 포개어 올리듯 컴포넌트 겹침 배치 배경 이미지 위에 반투명 글씨/버튼 덧씌우기

2. 핵심 컨테이너 상세 분석 및 FXML 예제


🌊 1) HBox와 VBox (선형 컨테이너)

컨트롤들을 가로 수평(HBox)이나 세로 수직(VBox)으로 단순하게 한 줄 나열할 때 사용합니다.

  • 주요 속성:
    • spacing: 위젯 간의 여백 거리
    • alignment: 중앙 정렬(CENTER), 좌상단 정렬(TOP_LEFT) 등
  • HBox FXML 예제 (root.fxml): ```xml <?xml version=”1.0” encoding=”UTF-8”?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.control.Button?>