LayoutManager2 — 제약 기반 레이아웃 관리자

LayoutManager2 — 제약 기반 레이아웃 관리자

LayoutManager2는 레이아웃 제약(constraints) 객체를 기반으로 Container를 배치하는 방법을 아는 클래스들을 위한 인터페이스를 정의해요. 이 인터페이스는 LayoutManager를 확장해서, 컴포넌트를 레이아웃에 어떻게·어디에 추가할지 지정하는 제약 객체를 명시적으로 다루는 배치를 다뤄요.

출처: Java API Reference

본문

public interface LayoutManager2 extends LayoutManager

이 최소 확장은 제약 기반 레이아웃을 만들고자 하는 툴 제공자(tool provider)를 위한 것이에요. 아직 완전한 범용 제약 기반 레이아웃 관리자 지원을 제공하지는 않아요.

LayoutManager에 추가된 메서드

  • addLayoutComponent(Component comp, Object constraints) — 지정한 제약 객체를 사용해 컴포넌트를 레이아웃에 추가해요.
  • maximumLayoutSize(Container target) — 포함된 컴포넌트들을 고려해 지정한 컨테이너의 최대 크기를 계산해요.
  • getLayoutAlignmentX(Container target) — x축 정렬을 반환해요. 0이면 원점 쪽, 1이면 원점에서 가장 먼 쪽, 0.5면 가운데 정렬을 나타내요.
  • getLayoutAlignmentY(Container target) — y축 정렬을 반환해요.
  • invalidateLayout(Container target) — 레이아웃이 캐시된 정보를 무효화해요.

대표적인 구현으로는 BorderLayout, GridBagLayout, CardLayout 등이 있어요. 이들은 각자 제약 객체를 활용해 유연한 배치를 지원해요.

더 알아보기