Einzelne TeilStrings einfärben

Abruzzi

Mitglied
Hey Leute,

Ich habe einen recht langen String, der in einer jTextArea ausgegeben wird. Jetzt möchte ich einen bestimmten Teilstring des langen Strings einfärben, damit er farbig ausgegeben wird, der Rest aber weiterhin schwarz bleibt.

Ich hoffe, dass es dafür eine Möglichkeit gibt.

MfG. Abruzzi
 
Wenn Sie editierbaren Text in Java darstellen möchten, haben Sie mehrere Möglichkeiten. Sie können bspw. eine JTextArea oder ein JTextField verwenden und simple Formatierungen daran vornehmen, die das komplette Textfeld betreffen (bspw. die Hintergrundfarbe oder Schrift verändern). Sollen sich bestimmte Textabschnitte voneinander unterscheiden, haben Sie zuerst einmal ein Problem, weil das mit einer JTextArea oder einem JTextField nicht funktioniert. Eine Alternative wäre es, HTML in einem JEditorPane darzustellen. Die Editierbarkeit ist in diesem Fall jedoch stark eingeschränkt. Es gibt noch eine weitere Möglichkeit: Sie können ein javax.swing.JTextPane mit einem eigenen javax.swing.text.StyledDocument versehen. Diese Variante wird Ihnen in diesem Kapitel vorgestellt.

--> Java Blog Buch : D) Formatierte Texteingabe
 
Habe ein ähnliches Problem.

Ich habe ein Programm, mit dem ich eine Textdatei in einen String umwandle. Danach suche ich nach bestimmten Wörtern und speichere deren Positionen im String in einem Vector.

Nun würde ich gerne den gesamten String ausgeben und die Wörter (deren Positionen ich habe) eingefärbt ausgeben.

Hab schon im Internet danach gesucht, aber bin nicht fündig geworden. Mein Gedanke war, immer Teilstrings auszugeben und dann die Teilstrings entsprechend färben. Geht es auch einfacher?

Irgendwelche Tipps? 🙂

Edit:
Ich möchte den Text in einem Fenster ausgeben. Ich werde dafür wahrscheinlich AWT verwenden.
 
Zuletzt bearbeitet:
Swing-Komponenten unterstützen (begrenzt) HTML, wenn du z.B. ein JLabel oder einen JButton oder so mit dem Text "<html>Ist das <b>fett</b></html>" anzeigst, steht da "Ist das fett". Mit Farben sollte das auch funktionieren.
 

Zurück
Oben