首页 > 解决方案 > 悬停/单击时使用 Synth 设置 JComboBox 的样式?

问题描述

我在 XML 文件中为JComboBox组件定义了一种样式,但状态 PRESSED 和 MOUSE_OVER 在任何时候都不做任何事情。

<style id="comboBoxStyle">
    <state> <!-- Normal state for combo box -->
        <color value="#9DA5B4" type="TEXT_FOREGROUND"/>
        <imagePainter method="comboBoxBackground" path="images/combobox.png" sourceInsets="2 2 2 2"/>
    </state>
    <state value="DISABLED"> <!-- Disabled state for combo box -->
        <color value="#6B717D" type="TEXT_FOREGROUND"/>
        <imagePainter method="comboBoxBackground" path="images/combobox_disabled.png" sourceInsets="2 2 2 2"/>
    </state>
    <state value="PRESSED"> <!-- Pressed state for combo box -->
        <color value="#DBDBDB" type="TEXT_FOREGROUND"/>
        <imagePainter method="comboBoxBackground" path="images/combobox_pressed.png" sourceInsets="2 2 2 2"/>
    </state>
    <state value="MOUSE_OVER"> <!-- Hovered state for combo box -->
        <color value="#DBDBDB" type="TEXT_FOREGROUND"/>
        <imagePainter method="comboBoxBackground" path="images/combobox_hovered.png" sourceInsets="2 2 2 2"/>
    </state>
</style>
<bind style="comboBoxStyle" type="region" key="ComboBox"/>

这是因为它们不应该 - 在SynthComboBoxUI它确定状态时,只返回 ENABLED、DISABLED 或 FOCUSED。

所以我的问题是——我怎样才能使组合框的状态实际上可以是 PRESSED 和 MOUSE_OVER,从而使 XML 文件中定义的状态起作用?

我真的不知道从哪里开始,我在互联网上找不到任何有用的东西,所以任何帮助将不胜感激。

标签: javaswingjcomboboxsynth

解决方案


推荐阅读