我正在研究一個Combobox。組合框由多個子組件組成,其中一個是編輯器。
我寫了一個自定義編輯器,它有一些自定義功能,我用combobox.setEditor(new CustomComboEditor())
來設置自定義編輯器。 我已經定義編輯皮膚標籤在我的皮膚xml文件,如下圖所示:Java合成 - 如何綁定自定義編輯器的組合?
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" />
注意康寶UI合成器的實現是SynthComboBoxUI
,它已綁定setName(ComboBox.textField)
,因此我在上面使用ComboBox.textField
關鍵標籤。
我注意到,當我將自定義編輯器設置爲我的組合編輯器時,皮膚不起作用。
但是,如果我不使用任何自定義編輯器並依賴於編輯器的默認實現,我的皮膚可以工作,但是我打算在我的組合編輯器中使用的功能不起作用。
當我嘗試爲組合設置自定義渲染器時,我面臨同樣的問題。
很難說任何切肉刀,張貼[SSCCE](http://sscce.org/) – mKorbel