LayoutManager2 — 제약 기반 레이아웃 관리자
LayoutManager2 — 제약 기반 레이아웃 관리자
LayoutManager2는 레이아웃 제약(constraints) 객체를 기반으로 Container를 배치하는 방법을 아는 클래스들을 위한 인터페이스를 정의해요. 이 인터페이스는 LayoutManager를 확장해서, 컴포넌트를 레이아웃에 어떻게·어디에 추가할지 지정하는 제약 객체를 명시적으로 다루는 배치를 다뤄요.
본문
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 등이 있어요. 이들은 각자 제약 객체를 활용해 유연한 배치를 지원해요.