# JTextPane (text/html): Schrift festlegen



## zubi (23. Mai 2004)

Hallo,

ich möchte bei einem JTextPane (mit ContentType("text/html")) die Schrift festlegen, in welcher der Text der eingegeben wird angezeigt wird.

Ich habe schon diverses (erfolglos) versucht, wobei ich glaube, dass das Problem darin liegt, dass der Text manuell hinzugefügt werden soll, denn wenn ich folgendes mach'


```
textPane.setText("<html><font face=\""Arial"\" style=\"font-size:12pt;\">test</font></html>")
```

wird "test" in der gewünschten Formatierung angezeigt sowie die Eingabe bei Laufzeit.
Es müsste doch nun auch möglich sein, dass das TextPane leer angezeigt wird und dennoch die Formatierung festgelegt werden kann.

Wenn ich mit dem Document arbeite, schaut's in etwa gleich aus:


```
kit = (HTMLEditorKit)textPane.getEditorKit();
doc = (HTMLDocument)textPane.getDocument();
kit.insertHTML(doc, doc.getLength(), "<html><font face=\""Arial"\" style=\"font-size:12pt;\">test</font></html>test", 0, 0, javax.swing.text.html.HTML.Tag.BODY);
```

Wäre wirklich froh wenn mir jemand helfen könnte!

Danke & Gruss,
zubi


----------



## zd (23. Mai 2004)

nimm doch einfach die setFont methode:


```
textPane.setFont(new Font("Arial", 0, 12));
```


----------



## zubi (23. Mai 2004)

zd hat gesagt.:
			
		

> nimm doch einfach die setFont methode:
> 
> 
> ```
> ...



Würd' ich tun, wenn der Inhalt des TextPanes nicht an andere Benutzer übertragen werden müsste (Chat). Genau hier liegt das Problem: die Formatierung soll nach der Übermittlung noch zu sehen sein. Der einzige Weg den ich gefunden habe um das zu erreichen, ist wenn ich den HTML-String (Formatierung plus Text) übermittle. Deshalb suche ich noch nach einer Lösung, die Schriftart per HTML-Tag festzulegen.

Bin für jeden Lösungsansatz dankbar!

Gruss,
zubi


----------



## zubi (24. Mai 2004)

... auch mit HTMLEditorKit.InsertHTMLTextAction() war ich leider nicht erfolgreich...

Kann es sein, dass es einfach nicht möglich ist das <font>-Tag ohne Textübergabe zu setzen oder ist das ein Bug? Auch wenn ich nur "&nbsp" übergebe wird die Formatierung richtig erkannt... ist zum verzweifeln!  :autsch: 

...mach luftsrpünge falls mir jemand weiterhelfen kann!


----------



## Mizus (24. Mai 2004)

Ich hab auch lange an diesem Problem gehangen. Hilfe habe ich hier gefunden

http://www.entwickler.com/itr/online_artikel/psecom,id,364,nodeid,11.html

wenn noch fragen auf tretten sollte melde dich dann einfach wieder


----------



## zubi (24. Mai 2004)

danke für die Antwort; die Site hab' ich bereits zufälligerweise über Google gefunden...
Auch in den Foren von sun hab' ich diverse ähnliche Probleme gesehen, jedoch noch nie eine wirklich gute Lösung.

Vielleicht liegt es auch an meinem Lösungsansatz, der so nicht zu realisieren ist. Ich versuch' mein Problem nochmals zu schildern; vielleicht kennt jemand einen (besseren) Ansatz:

Die Ausganslage ist folgende: ich habe einen Chat geschrieben, welcher momentan zur Textein- & -ausgabe jeweils eine jTextArea nutzt. Soweit funktioniert alles bestens.

Ziel ist es nun den bestehenden Chat mit jTextPanes zu erweitern, damit der Benutzer bei der Texteingabe Formatierungen vornehmen kann. Und um das zu realisieren gibt es diverse Möglichkeiten.
Ich dachte das einfachste wäre HTML-Strings zu übertragen, da so die Formatierung bereits inklusive ist.
Bei der Verwendung von Styles wusste ich nicht wie ich die Formatierung mitübertragen soll, v.a. wenn in einer Nachricht mehrere Schriften und/oder Farben eingesetzt würden.

Nun steck' ich bei HTML fest und frage mich, ob ich nicht anders hätte vorgehen sollen...?!!?

gruss,
zubi


----------

