2011-01-04 2 views
0

On m'a demandé de changer les couleurs d'un JComboBox dans une application pour un schéma de couleur très particulier, non par défaut.Changement de la couleur ControlShadow de JComboBox uniquement

J'ai trouvé que si je change la valeur de la

System.UserInterface.Colors.SwingDefaults.ControlShadow 

du fichier de la carte des ressources de celle-ci:

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

à ceci:

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

tout semble Comme il se doit.

Toutefois, je ne souhaite pas modifier la couleur ControlShadow pour tous les contrôles Swing. Je dois donc trouver une solution plus ciblée.

Y at-il un moyen de changer cette couleur pour seulement JComboBox?

Notez que j'ai essayé de changer la valeur de ComboBox.buttonShadow (en #FFFFFF) mais cela n'a pas fonctionné.

Répondre

1

Je ne pense pas que vous devriez jouer avec le fichier de ressources.

Consultez le UIManager Defaults pour savoir comment procéder. Regardez les "couleurs du système" pour voir la valeur par défaut de "controlShadow". Si vous regardez alors la zone de liste déroulante vous verrez que le "ComboBox.buttonShadow" a la même valeur. Peut-être que vous changez cette valeur pour votre LAF. Sinon, vous devez créer une interface utilisateur de zone de liste déroulante personnalisée. Recherchez le code source pour voir où cette valeur est utilisée et vous saurez quoi changer.

+0

J'ai essayé de changer la valeur de ComboBox.buttonShadow (en #FFFFFF) mais cela n'a pas fonctionné. –