【发布时间】:2018-07-16 00:56:27
【问题描述】:
我正在使用 Synth 自定义我的 LAF,现在我正在研究 ComboBox,这让我很困惑。我查看了ComponentProperties Table 并找到了ComboBox.listRenderer 属性,它为JComboBox 的列表指定了一个渲染器。问题是我不知道如何将我自己的渲染器绑定到它。我找到了一些以前的答案,例如:
<style id="ComboBoxListRenderer">
<opaque value="true"/>
<state>
<color type="TEXT_FOREGROUND" value="BLACK" />
</state>
</style>
<bind style="ComboBoxListRenderer" type="name" key="ComboBox.listRenderer"/>
这确实有效,但它只会改变默认的SynthComboBoxRenderer 的行为,我无法将我自己的渲染器类ui.MyComboBoxRenderer 绑定到它。我也试过了
<style id="comboBox">
...
<object id="ComboBoxListRenderer" class="ui.MyComboBoxListRenderer"/>
<property key="ComboBox.listRenderer" type="idref" value="ComboBoxListRenderer"/>
...
</style>
<bind style="comboBox" type="region" key="ComboBox"/>
很遗憾,这一次什么都没有发生。知道如何将自定义渲染器应用于所有组合框吗?谢谢。
【问题讨论】: