LookAndFeel
LookAndFeel (룩 앤 필을 캡슐화하는 추상 클래스)
이름이 암시하듯 룩 앤 필(look and feel)을 캡슐화합니다. 룩 앤 필을 설치하는 것 외에는 대부분의 개발자가 LookAndFeel과 직접 상호작용할 필요가 없습니다.
본문
LookAndFeel은 룩 앤 필을 캡슐화합니다. 일반적으로 사용자 지정 룩 앤 필을 만드는 개발자만 이 클래스를 신경 쓸 필요가 있습니다.
public abstract class LookAndFeel extends Object
Swing은 각 JComponent 하위 클래스가 특정 ComponentUI 하위 클래스의 구현을 가진다는 기반 위에 구축됩니다. ComponentUI는 종종 "the ui", "component ui", 또는 "look and feel delegate"라고 불리며, 컴포넌트의 룩 앤 필 특정 기능을 제공하는 책임을 집니다. 예를 들어 JTree는 ComponentUI 하위 클래스인 TreeUI의 구현을 요구합니다.
각 JComponent 하위 클래스는 JComponent 메서드 getUIClassID를 통해 필요한 ComponentUI 하위 클래스를 식별합니다. 각 LookAndFeel 구현은 getDefaults가 반환하는 UIDefaults 객체에서 Swing의 각 ui 클래스 id에 값을 지정하여 적절한 ComponentUI 하위 클래스의 구현을 제공해야 합니다. 예를 들어 BasicLookAndFeel은 TreeUI의 구체적 구현으로 BasicTreeUI를 사용하며, getDefaults가 반환하는 UIDefaults에 "TreeUI"-"javax.swing.plaf.basic.BasicTreeUI" 키-값 쌍을 제공함으로써 이를 달성합니다.
LookAndFeel이 제공하는 다양한 install 메서드는 필요한 확인을 처리하고 권장 지침에 따라 속성을 설치합니다. LookAndFeel이 제공하는 모든 install 메서드는 변경되는 속성의 값이 null이거나 UIResource이면 기본값에 접근해야 합니다. 기본값 테이블은 fontKey 키로 조회됩니다. UIDefault의 모든 get 메서드는 null을 전달받으면 NullPointerException을 던집니다.