1

您好,我想将组合框的背景设置为除白色以外的另一种颜色,并且在渲染期间,当用户单击以从内部的项目中进行选择时,我如何使用合成器来实现?

提前致谢!

4

2 回答 2

2

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

<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>  


于 2012-08-09T17:37:14.703 回答
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>

`

于 2011-12-04T15:46:05.247 回答