使用Synth在Java中构造Combobox

时间:2011-12-02 16:49:36

标签: java swing combobox synth

你好我想设置组合框的背景我必须使用另一种颜色,除了白色,并且在渲染过程中,当用户点击选择内部的项目时,我如何使用合成器来实现?

提前致谢!

2 个答案:

答案 0 :(得分:2)

我实际上发现单靠依赖列表的属性并不足以创建我想要的悬停效果。我尝试了上一个答案的代码,但是当我在元素上盘旋时,我只能更改文本颜色(而不是整个单元格的颜色)。默认情况下(在“Metal”中),JComboBox列表将突出显示应用于整个单元格。通过试验错误,我发现以下“ComboBox.listRenderer”样式和“列表”样式的组合启用了默认效果。在我的示例中,列表在悬停时具有棕褐色背景,黑色文本和灰色突出显示。

<style id="ComboBoxListRenderer">
     <opaque value="true"/>
     <state>
          <color type="TEXT_FOREGROUND" value="BLACK" />
     </state>
</style>
<bind style="ComboBoxListRenderer" type="name" key="ComboBox.listRenderer"/>

<style id="ListStyle">
    <opaque value="true" />
    <insets top="0" left="0" bottom ="0" right="0" />
    <state>
     <color type="BACKGROUND" value="#E0CEB0" />
     <color type="TEXT_BACKGROUND" value="#666666" />
    </state>  


答案 1 :(得分:0)

解决方案出现之后,组合框使用一个列表来显示其内部事物以便应该更改...所以我做了:

<style id="style">
<opaque value="TRUE"/>

<state>
  <color value="WHITE" type="TEXT_FOREGROUND"/>
  <color value="RED" type="TEXT_BACKGROUND"/>
  <color value="RED" type="BACKGROUND"/>
</state>
<state value="SELECTED">
  <color value="RED" type="TEXT_FOREGROUND"/>
  <color value="WHITE" type="TEXT_BACKGROUND"/>
</state>

  `