전 Combobox를 스키닝하고 있습니다. 콤보 박스는 여러 하위 구성 요소로 구성되며 그 중 하나는 편집자입니다.
몇 가지 사용자 지정 함수가있는 사용자 지정 편집기를 작성했으며 combobox.setEditor(new CustomComboEditor())
을 사용하여 사용자 지정 편집기를 설정했습니다. 다음과 같이 내 피부 XML 파일에서 편집기의 스킨 태그를 정의 : UI 신디사이저 구현 SynthComboBoxUI
입니다 콤보Java synth - 콤보 용 사용자 정의 편집기를 바인드하는 방법은 무엇입니까?
style id="skinnedComboTextStyle">
<state value="MOUSE_OVER">
<imagePainter method="textFieldBackground" path="/images/image1.png" sourceInsets="2 2 2 20" />
</state>
<state value="PRESSED">
<imagePainter method="textFieldBackground" path="/images/image2.png" sourceInsets="2 2 2 2" />
</state>
</style>
<bind style="skinnedComboTextStyle" type="name" key="ComboBox.textField" />
주와는 setName(ComboBox.textField)
을 결합했다, 그래서 나는 위에서 키로 ComboBox.textField
을 사용했다 꼬리표.
사용자 지정 편집기를 콤보 편집기로 설정하면 스킨이 적용되지 않습니다.
그러나 사용자 정의 편집기를 사용하지 않고 편집기의 기본 구현을 사용하면 내 스킨이 작동하지만 콤보 편집기에서 사용하려는 기능은 적용되지 않습니다.
콤보 용 사용자 지정 렌더러를 설정하려고 할 때 동일한 문제가 발생합니다.
[SSCCE] (http://sscce.org/) 게시판에 어떤 식칼이라도 말하기 어렵습니다. – mKorbel