# Schriftfarbe ändern in JTextArea / Font bekommen



## roddy (23. Jan 2007)

Hallo, 

ich möchte, dass in einer JTextArea auf verschiedene Weise Text ergänzt wird. Prinzipiell läuft das ja dann so:


```
private JTextArea messages = new JTextArea()
...
public appendA(String message){
     messages.setFont(???); // Hier frage ich mich, was hin muss
     messages.append(message);
}

public appendB(String message){
     messages.setFont(???); // Hier frage ich mich, was hin muss
     messages.append(message);
}
```

Ich hätte es jetzt gerne, dass ein Aufruf von appendA(String) die neue Message in blauer Schrift anhängt und ein Aufruf von appendB die neue Message in schwarzer Schrift anhängt. Ich muss dafür natürlich setFont rufen... Nun habe ich zwei Fragen:

- Wie bekomme ich die Standartschrift und Standartgröße, die sowieso schon verwendet wird? Das müsste doch irgendwie über das L&F gehen oder?
- Kann ich die Schrift dort in eine andere Farbe setzen oder muss ich mich darauf beschränken zur Abgrenzung der beiden Methoden die Schrift auf BOLD o.ä. zu setzen?[/code]


----------



## The_S (24. Jan 2007)

1. setFont ist falsch, die Farbe wird mit setForeground gesetzt
2. Du kannst nicht einfach so Text zweifarbig gestallten, dazu benötigst du ein eigenes Document, schau dir am Besten mal JTextPane an.


----------



## André Uhres (24. Jan 2007)

Hier ist ein Beispiel mit JEditorPane. 
Du kannst aber auch "JEditorPane" durch "JTextPane" ersetzen:
http://www.java-forum.org/de/viewtopic.php?p=202812#202812
Ausser "StyleConstants.setForeground" gibt's auch noch:
StyleConstants.setItalic
StyleConstants.setBold
StyleConstants.setFontSize
usw.
(kann man natürlich auch kombinieren)


----------

