Schriftfarbe ändern
-
Hi zusammen,
ich erstelle mir gerade ein Frame mit dem JBuilder6 und möchte die Schriftfarbe der Labels auf schwarz ändern. Dazu benutze ich die Methode 'setForeground'.
Leider ohne den gewünschten erfolg, die Farbe des Labels bleibt häßlich lila Wenn ich die Schriftfarbe allerdings in rot, grün, gelb oder was auch immer verändern will, dann klappt das wunderbar
kann mir jemand sagen, woran das liegen könnte?
danke für eure hilfe
-
Wie änderst du denn mit setForeground die Farbe? Benutzt du java.awt.Color.BLACK?
-
die Farbe änder ich mit
label1.setForeground(Color.red);
Ich kann sie auch mit
label1.setForeground(new Color(1, 0, 0));
ändern, dann ist sie zwar auch schwarz aber ich möchte auch verstehen, wieso
label1.setForeground(Color.black);
ein lila Schrift verursacht
-
Wenn Color.black funktioniert muss das ein ziemlich altes JDK sein das du da hast ... prinzpiell kannst du auf die Verwendung der Farbkonstanten verzichten wenn du deine Farben selbst über R-, G- und B-Werte bestimmst. Für Schwarz wäre dies dann eben
new Color(0, 0, 0)
Im übrigen glaube ich dass die lila-Schriftfarbe trotz dem setForeground immer noch die Standardfarbe für Swing-Labels ist. Das würde z.B. dann so sein, wenn Sun ihrer eigenen Konvention Konstanten alle groß zu schreiben konsequent nachgegangen ist und Color.black ersetzt hat durch Color.BLACK und alle vorhergehenden zwecks kompatibilität auf die Standardfarbe rückgesetzt hat.
-
ja, Du hast recht.... hab noch die 1.3.1 aufm Rechner, da ich mit meiner derzeitigen inet-Anbindung, nicht den DL des 1.4.x SDK angehen will
Danke für Deine schnelle Hilfe
werds weiterhin über die RGB-Werte ändern,
ist wahrscheinlich das sicherste, bis ich dann irgendwann mal das neue SDK hab
-
Ich denke jetzt mal, dass das mit dem L&F zusammenhängt. (Im Metal-L&F ist die Fabe ja lila) Swing wird da einfach Schwarz als Standardfarbe nehmen und wenn die vorkommt, diese dann durch eben dieses lila ersetzen.
Wenn du alle deine Labels in schwarz haben willst, dann versuch doch mal folgendes:
UIManager.getDefaults().put("Label.foreground", Color.BLACK);
Das würde z.B. dann so sein, wenn Sun ihrer eigenen Konvention Konstanten alle groß zu schreiben konsequent nachgegangen ist und Color.black ersetzt hat durch Color.BLACK und alle vorhergehenden zwecks kompatibilität auf die Standardfarbe rückgesetzt hat.
Es stimmt schon, dass es BLACK erst seit 1.4 gibt, aber der Source von java.awt.Color sagt da was anderes:
public final static Color black = new Color(0, 0, 0); public final static Color BLACK = black;
sprich Color.black == Color.BLACK