【问题标题】:styling Combobox in Java using Synth使用 Synth 在 Java 中设置 Combobox 样式
【发布时间】:2011-12-02 16:49:35
【问题描述】:

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

提前致谢!

【问题讨论】:

  • 解决方案是在组合框使用列表显示其内部内容之后出现的,所以这就是应该更改的内容......所以我为列表添加了样式:

标签: java swing combobox synth


【解决方案1】:

我实际上发现仅依靠列表的属性并不足以创建我想要的悬停效果。我尝试了上一个答案的代码,但是当我将鼠标悬停在一个元素上时,我只能更改文本颜色(而不是整个单元格的颜色)。默认情况下(在“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>  


【讨论】:

    【解决方案2】:

    解决方案是在组合框使用列表显示其内部内容之后出现的,所以这就是应该更改的内容......所以我这样做了:

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

    `

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      相关资源
      最近更新 更多