고유 한 사용자 지정 UI로 사용자 지정 구성 요소를 만들고 있습니다. 질문 How to create a custom Swing Component은 구성 요소 개발에 큰 도움이되었지만 사용자 정의 구성 요소를 UI에 연결하는 좋은 방법을 찾을 수 없었습니다.사용자 지정 구성 요소에 대한 올바른 UI 구현을 결정하는 방법
How to Write a Custom Swing Component의 코드는 훌륭하지만 JFlexiSlider.updateUI
하드 코딩 UI의 구현 BasicFlexiSliderUI
을 사용 :
public void updateUI() {
if (UIManager.get(getUIClassID()) != null) {
setUI((FlexiSliderUI) UIManager.getUI(this));
} else {
setUI(new BasicFlexiSliderUI());
}
}
표준 스윙 구성 요소가 updateUI
단순히 UIManager.get(this)
에서 직접 UI를 설정 구현합니다. UIClassID
에서 실제 구현으로의 매핑은 BasicLookAndFeel
및 하위 클래스에 있습니다.
필자가 새로운 모양과 느낌을 만들고 싶지 않은 경우, UIClassID
에서 실제 구현으로의 기본 매핑을 어디에서 설정할 것입니까? 구성 요소 클래스 외부에 있어야하는 것처럼 보이지만 사용자 지정 구성 요소를 처음 사용하기 전에 UIDefaults
개체에 추가해야합니다.
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –
이것은 어려운 문제입니다. 자신의 UI를 넣을 좋은 곳은 없습니다. UIManager에 넣으려고하면 코드가 자체 포함 된 라이브러리처럼 잘 작동하지 않습니다. 그렇지 않으면 다른 모양으로 사용할 수없고 너무 쉽게 느껴집니다. –