2011-01-04 11 views
0

Ich wurde gebeten, die Farben einer JComboBox in einer Anwendung in ein ganz bestimmtes, nicht standardmäßiges Farbschema zu ändern.Ändern der ControlShadow-Farbe nur von JComboBoxen

Ich habe festgestellt, dass, wenn ich den Wert des

ändern
System.UserInterface.Colors.SwingDefaults.ControlShadow 

der Ressourcen Map-Datei von dieser:

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

dazu:

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

sieht alles so wie es sollte.

Allerdings möchte ich nicht die ControlShadow-Farbe für alle Swing-Steuerelemente ändern, also muss ich einen gezielteren Fix finden.

Gibt es eine Möglichkeit, diese Farbe nur für JComboBoxen zu ändern?

Beachten Sie, dass ich versucht habe, den Wert von ComboBox.buttonShadow (zu #FFFFFF) zu ändern, aber das hat nicht funktioniert.

Antwort

1

Ich glaube nicht, dass Sie mit der Ressource-Datei spielen sollten.

Überprüfen Sie die UIManager Defaults für einen möglichen Weg, dies zu tun. Sehen Sie sich die "System Colors" an, um den Standardwert von "controlShadow" zu sehen. Wenn Sie dann das Kombinationsfeld betrachten, sehen Sie, dass "ComboBox.buttonShadow" den gleichen Wert hat. Vielleicht änderst du diesen Wert für deinen LAF. Andernfalls müssen Sie eine benutzerdefinierte Kombinationsfeld-Benutzeroberfläche erstellen. Durchsuchen Sie den Quellcode, um zu sehen, wo dieser Wert verwendet wird, und Sie werden wissen, was geändert werden soll.

+0

Ich habe versucht, den Wert von ComboBox.buttonShadow (zu #FFFFFF) zu ändern, aber das hat nicht funktioniert. –