Изменение цвета ControlShadow только для JComboBoxes - PullRequest
0 голосов
/ 04 января 2011

Меня попросили изменить цвета JComboBox в приложении на очень специфическую цветовую схему, отличную от стандартной.

Я обнаружил, что если я изменю значение

System.UserInterface.Colors.SwingDefaults.ControlShadow

файла карты ресурсов из этого:

            <Color ident="ControlShadow" value="#999999"/>

к этому:

            <Color ident="ControlShadow" value="#FFFFFF"/>

все выглядит так, как должно.

Однако яя не хочу менять цвет ControlShadow для всех элементов управления Swing, поэтому мне нужно найти более сфокусированное исправление.

Можно ли изменить этот цвет только для JComboBoxes?

Обратите внимание, чтоЯ попытался изменить значение ComboBox.buttonShadow (на #FFFFFF), но это не сработало.

1 Ответ

1 голос
/ 05 января 2011

Я не думаю, что вы должны играть с файлом ресурсов.

Проверьте UIManager по умолчанию для потенциального способа сделать это.Посмотрите на «Системные цвета», чтобы увидеть значение по умолчанию для «controlShadow».Если вы затем посмотрите на поле со списком, то увидите, что ComboBox.buttonShadow имеет то же значение.Может быть, вы измените это значение для вашего LAF.В противном случае вам нужно создать пользовательский интерфейс со списком.Найдите в исходном коде, где используется это значение, и вы узнаете, что нужно изменить.

...