# Bei Swing Komponenten die Farbe ändern?



## MPW (18. Aug 2005)

Hallo,
kann ich bei Swingkomponenten ohne diese zu überschreiben und paint zu ändern die Farbe ändern?
Bei JLabel müsste dies ja durch entsrechende html-Tags gehen...und bei JTextFields? Ich möchte z.B. die Hintergrundfarbe drumherum und innen drin auf schwarz haben, die Schriftfarbe auf weiß...es soll im Prinzip alles schwarz, nur Schrift weiß..auch auf den Buttons?

Es ist nur ein sehr kleines Applet..mit 4 JTextFields, 2 JPasswordField, 7 JLabels, 1 JCheckBox und 2 JButtons ein eigenes Look und Feel würde sich also nciht wirklich lohnen...

MfG
MPW


----------



## Beni (18. Aug 2005)

Versuchs mal mit "setBackground" und "setForeground".


----------



## lin (18. Aug 2005)

hier  in der API , 
	
	
	
	





```
JButton button = new JButton("xy");
button.setBackground(new Color(r, g, b, alpha));
button.setForeground(Color.orange);
```


----------



## MPW (18. Aug 2005)

ops..hab' doch extra geguckt..aber eben immer nach irgendwas mit Color..naja ich danke euch.
(Da ich mir sowas schon gedacht habe, hab' ich's auch in Anfängerfragen gestellt)

Naja gilt jetzt als erledigt!


----------



## MPW (18. Aug 2005)

okay, das klappt so weit schön..hab' jetzt nochmal in die API geguckt, wieder nix gefunden...ich fürchte ich muss mich nochmalst belehren lassen:

Der blinkende Courser im Text/Passwordfield ist nicht mehr zu sehen, da er ja auch schwarz ist....wie der Hintergrund.

Man kann icht mehr sehen, ob die JCheckbox aktiviert ist oder nicht, da das häckchen ja schwarz ist, nur wenn sie den focus hat wird es leicht erkennbar...sonst nicht..

Könntet ihr vielleicht nochmal helfen?


----------



## Floesch84 (18. Aug 2005)

Zu ersterem:


```
JTextField bla = new JTextField();
bla.setCaretColor(new Color(r, g, b, alpha)); || bla.setCaretColor(Color.RED);
```

sollte hinhauen.

mfg


----------



## lin (18. Aug 2005)

Also die Farbe des Cursors setzt du mit: 
	
	
	
	





```
setCaretColor(Color cl);
```
EDIT: hm, war wohl zu langsam  :roll:


----------



## MPW (18. Aug 2005)

Danke! Und wie kann ich jetzt noch das Häckchen der JCheckBox umcoloern?


----------



## Floesch84 (18. Aug 2005)

hhhmmmm, gute Frage, so direkt find ich da jetzt auch nichts, aber du kannst es ja mit 


```
setSelectedIcon(Icon selectedIcon);
```

probieren. Brauchst dann halt nur ein Icon das dargestellt wird. Ist zwar nicht 100% das was du suchts, aber was besseres fällt mir so auf die Schnelle nicht ein.


----------



## MPW (18. Aug 2005)

hm..naja das ist mir jetzt zu umständlich, dann muss der user halt genauer hingucken...das blöde ist ja auch, dass man nicht nur das innere der Checkbox weiß lassen kann das wäre ja auch okay gesammt Konzept her aber dann ist immer noch so'n weißer, hässliches Rahmen außeren rum auch wenn man es mittels FlowLayout ganz klein macht ist der 3-4 mm dick..naja wenn noch jemannd eine Idee hat, kann er's ja posten!


----------



## lin (18. Aug 2005)

Versuchs mit 

```
try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf." + 
                    "windows.WindowsLookAndFeel");
        } catch (Exception e) { System.out.println(e); }

        UIManager.put("CheckBox.interiorBackground", Color.GREEN);
        
        JCheckBox bx = new JCheckBox("checkIt");
        bx.setBackground(Color.BLACK);
        bx.setForeground(Color.WHITE);
```


----------



## MPW (18. Aug 2005)

Nö, das verändert garnichts...


----------



## lin (18. Aug 2005)

Ändert halt nur die Farbe des Hintergrunds (interiorBackground). Kannst auch den Schatten verändern, etc. ..
Um aber die Farbe des "Ticks" bzw. "Häckens" zu ändern, musst du wahrscheinlich selber n CheckBoxIcon schreiben... oder kopierst ein bereits geschriebenes....

Ich glaube ganz unten in diesem Thread steht was geschrieben: 
http://forum.java.sun.com/thread.jspa?threadID=599271&messageID=3212837


----------

