Использовать Synth для стилизации JComboBox, когда он зависает / щелкает? - PullRequest
1 голос
/ 05 мая 2020

Я определил стиль в файле 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, работают?

Я действительно не знаю, с чего даже начать, я не могу найти ничего полезного в inte rnet, так что любой помощь будет принята с благодарностью.

...