Изменение цвета ControlShadow только для JComboBoxes
Меня попросили изменить цвета JComboBox в приложении на очень специфическую цветовую схему не по умолчанию.
Я обнаружил, что если я изменю значение
System.UserInterface.Colors.SwingDefaults.ControlShadow
файла карты ресурсов из этого:
<Color ident="ControlShadow" value="#999999"/>
к этому:
<Color ident="ControlShadow" value="#FFFFFF"/>
все выглядит как надо.
Однако я не хочу менять цвет ControlShadow для всех элементов управления Swing, поэтому мне нужно найти более сфокусированное исправление.
Есть ли способ изменить этот цвет только для JComboBoxes?
Обратите внимание, что я попытался изменить значение ComboBox.buttonShadow (на #FFFFFF), но это не сработало.
1 ответ
Я не думаю, что вы должны играть с файлом ресурсов.
Проверьте UIManager по умолчанию для потенциального способа сделать это. Посмотрите на "Системные цвета", чтобы увидеть значение по умолчанию для "controlShadow". Если вы затем посмотрите на поле со списком, то увидите, что ComboBox.buttonShadow имеет то же значение. Может быть, вы измените это значение для вашего LAF. В противном случае вам нужно создать пользовательский интерфейс со списком. Найдите в исходном коде, где используется это значение, и вы узнаете, что нужно изменить.