MultiLookAndFeel
MultiLookAndFeel
하나의 컴포넌트에 둘 이상의 UI를 동시에 연결할 수 있게 하는 다중화(multiplexing) Look and Feel예요. 기본 Look and Feel를 primary라고 부르고, 나머지 Look and Feel들을 auxiliary라고 불러요. 자세한 내용은 "Using the Multiplexing Look and Feel"을 참조하세요.
경고: 이 클래스의 직렬화된 객체는 향후 Swing 릴리스와 호환되지 않을 거예요. 현재 직렬화 지원은 같은 버전의 Swing을 실행하는 애플리케이션 간의 단기 저장 또는 RMI에 적절해요. 1.4부터 모든 JavaBean의 장기 저장 지원이
java.beans패키지에 추가되었어요.XMLEncoder를 참조하세요.
본문
MultiLookAndFeel은 둘 이상의 Look and Feel가 하나의 컴포넌트에 동시에 적용될 수 있게 하는 특별한 Look and Feel예요. 대상 컴포넌트를 표시하는 데 필요한 ComponentUI 객체들을 만들어 uis 벡터에 담고, 컴포넌트의 UI를 가장 잘 나타내는 ComponentUI 객체를 반환해요.
대표적인 시그니처는 다음과 같아요.
public MultiLookAndFeel()
public String getName()
public String getID()
public String getDescription()
public boolean isNativeLookAndFeel()
public boolean isSupportedLookAndFeel()
public UIDefaults getDefaults()
public static ComponentUI createUIs(ComponentUI mui, Vector<ComponentUI> uis, JComponent target)
protected static ComponentUI[] uisToArray(Vector<? extends ComponentUI> uis)
주요 메서드의 동작을 살펴볼게요.
getName()— 메뉴 등에서 식별에 적합한 문자열을 반환해요.getID()— 애플리케이션/서비스에서 사용하기에 적합한 식별 문자열을 반환해요.getDescription()— 이 Look and Feel에 대한 한 줄 설명을 반환해요.isNativeLookAndFeel()—false를 반환해요. 이 Look and Feel는 어떤 플랫폼에도 네이티브가 아니에요.isSupportedLookAndFeel()—true를 반환해요. 모든 플랫폼이 이 Look and Feel를 허용해요.getDefaults()— look and feel별 defaults를 생성, 초기화, 반환해요. 이 Look and Feel의 defaults는 UI 클래스 ID(예:"ButtonUI")를ComponentUI클래스 이름(예:"javax.swing.plaf.multi.MultiButtonUI")에 매핑하는 것으로만 구성돼요.createUIs(...)— 대상 컴포넌트를 표시하는 데 필요한ComponentUI객체들을 만들어uis벡터에 담고, 컴포넌트의 UI를 가장 잘 나타내는 객체를 반환해요. 현재 사용 중인 각 기본 및 보조 Look and Feel에 대해getDefaults().getUI(target)을 호출해ComponentUI객체를 찾아요.uis벡터에 추가하는 첫 번째 UI 객체는 기본 Look and Feel용이에요.uisToArray(...)— 전달받은 벡터의 UI 객체들로 배열을 만들어 반환해요.uis가 null이면 0개 요소의 배열을, 빈 벡터면 null을 반환해요.