LayoutManager — 레이아웃 관리자 인터페이스
LayoutManager — 레이아웃 관리자 인터페이스
LayoutManager는 Container를 어떻게 배치할지 아는 클래스들을 위한 인터페이스를 정의해요. Swing의 페인팅 구조는 JComponent의 자식들이 서로 겹치지 않는다고 가정해요. 만약 어떤 JComponent의 LayoutManager가 자식들이 겹치도록 허용한다면, 그 JComponent는 isOptimizedDrawingEnabled를 재정의해서 false를 반환해야 해요.
본문
public interface LayoutManager {
void addLayoutComponent(String name, Component comp);
void removeLayoutComponent(Component comp);
Dimension preferredLayoutSize(Container parent);
Dimension minimumLayoutSize(Container parent);
void layoutContainer(Container parent);
}
주요 메서드
addLayoutComponent(String name, Component comp)— 레이아웃 관리자가 컴포넌트별 문자열을 사용한다면, 컴포넌트comp를name문자열과 연결해 레이아웃에 추가해요.removeLayoutComponent(Component comp)— 지정한 컴포넌트를 레이아웃에서 제거해요.preferredLayoutSize(Container parent)— 포함된 컴포넌트들을 고려해 지정한 컨테이너의 선호 크기를 계산해요.minimumLayoutSize(Container parent)— 포함된 컴포넌트들을 고려해 지정한 컨테이너의 최소 크기를 계산해요.layoutContainer(Container parent)— 컨테이너를 배치해요.
커스텀 레이아웃 관리자를 만들 때는 이 다섯 메서드를 모두 구현해야 해요. 더 복잡한 제약 기반 배치가 필요하다면 LayoutManager2 인터페이스를 살펴보는 걸 추천해요.