LayoutManager — 레이아웃 관리자 인터페이스

LayoutManager — 레이아웃 관리자 인터페이스

LayoutManager는 Container를 어떻게 배치할지 아는 클래스들을 위한 인터페이스를 정의해요. Swing의 페인팅 구조는 JComponent의 자식들이 서로 겹치지 않는다고 가정해요. 만약 어떤 JComponentLayoutManager가 자식들이 겹치도록 허용한다면, 그 JComponentisOptimizedDrawingEnabled를 재정의해서 false를 반환해야 해요.

출처: Java API Reference

본문

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) — 레이아웃 관리자가 컴포넌트별 문자열을 사용한다면, 컴포넌트 compname 문자열과 연결해 레이아웃에 추가해요.
  • removeLayoutComponent(Component comp) — 지정한 컴포넌트를 레이아웃에서 제거해요.
  • preferredLayoutSize(Container parent) — 포함된 컴포넌트들을 고려해 지정한 컨테이너의 선호 크기를 계산해요.
  • minimumLayoutSize(Container parent) — 포함된 컴포넌트들을 고려해 지정한 컨테이너의 최소 크기를 계산해요.
  • layoutContainer(Container parent) — 컨테이너를 배치해요.

커스텀 레이아웃 관리자를 만들 때는 이 다섯 메서드를 모두 구현해야 해요. 더 복잡한 제약 기반 배치가 필요하다면 LayoutManager2 인터페이스를 살펴보는 걸 추천해요.

더 알아보기