Painter

Painter (그리기를 위임하는 페인터 인터페이스)

그리기 위임자(delegate)입니다. Painter 인터페이스는 정확히 하나의 메서드인 paint를 정의합니다.

출처: Java API Reference

본문

Painter는 그리기 위임자입니다. Painter 인터페이스는 정확히 하나의 메서드인 paint를 정의하며, 개발자가 컴포넌트를 하위 클래스화하지 않고도 컴포넌트의 그리기 루틴을 변경할 수 있는 상황에서 사용됩니다. 어떤 형태의 그리기 위임을 할 때도 일반적으로 유용합니다.

public interface Painter<T>

Painter는 Java2D 코드의 캡슐화일 뿐이며 기존 Painter를 재사용하거나 결합하는 것을 상당히 쉽게 만듭니다. 이 인터페이스의 구현 작성도 쉬워서, 필요한 Painter를 찾지 못하면 최소한의 노력으로 직접 작성할 수 있습니다. Painter 작성을 위해서는 Java2D에 대한 지식이 필요합니다.

Painter는 타입 매개변수로 생성될 수 있으며, 이 타입은 paint 메서드에서 기대됩니다. 예를 들어 Component의 하위 클래스에서만 동작하는 Painter를 작성하려면 paint 메서드가 타입 안전하도록 Component를 요구한다고 선언할 수 있습니다.

Painter<Component> p = new Painter<Component>() {
    public void paint(Graphics2D g, Component c, int width, int height) {
        g.setColor(c.getBackground()); //and so forth
    }
}

이 인터페이스는 스레드 안전성을 보장하지 않습니다.

더 알아보기 (Learn more)

Java 공식 API