JTextPane Formatierungen

Die Nutzung der JTextPane-Komponente ähnelt grundsätzlich sehr der anderen Komponenten mit Texteingabe. Sobald Ihr aber (berechtigte) Features wie Fettdruck, Schriftarten, Schriftfarben oder Schriftgröße nutzen möchtet, wird die Programmierung deutlich anspruchsvoller.

So kann ich den Inhalt eines TextPane nicht mehr mittels „.getText()“ von der Komponente erhalten, sondern der Weg führt über ein „StyledDocument“. Ebenfalls ist das Laden aus einer (RTF-) Datei oder das Speichern in eine solche Datei mit mehr Programmieraufwand verbunden.

Damit Ihr die einzelnen Features besser im Quellcode erkennen könnt, biete ich Euch Beispiele an, welche immer nur ein einzelnen Feature beinhalten.

TextPane Basic: das Basisbeispiel für das Laden und Speichern einer Textdatei in eine JTextPane.

TextPane RTF: wir laden eine Datei im RTF-Format in das JTextPane und speichern die Datei. Dieses Beispiel ist die Basis für alle weiteren Beispiele.

TextPane RTF ByteArray: hier wird eine RTF-Datei zuerst in ein ByteArray geladen und dieses dann in das JTextPane übertragen. Das speichern erfolgt umgekehrt: zuerst wird der Inhalt der JTextPane in ein ByteArray übertragen und dieses dann gespeichert.

TextPane HTML: ich möchte Euch nicht unterschlagen, das die JTextPane-Komponente auch HTML-Dateien anzeigen und bearbeiten kann. Hier seht Ihr die Abwandlung des TextPane RTF-Beispieles für HTML.

TextPane Bold-Italic-Underline: wir erweitern die TextPane RTF um die Basisformatierungen Fett, Kursiv und Unterstrichen.

TextPane Font Color: wir ändern die Farbe eines selektierten Textteiles.

TextPane Font Size: auch die Änderung der Größe eines Fonts ist einfach realisierbar.

TextPane Font: selbstverständlich kann auch der Font einer Textstelle geändert werden.

TextPane Hintergrundfarbe: neben der Textfarbe kann auch die Farbe des Hintergrundes der Komponente geändert werden.

Alle Quellcodes zur JTextPane findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/JTextPane. Alle Programme sind unter Java 11 lauffähig (vermutlich auch unter Java 8) und wurden mit intelliJ IDEA entwickelt, welches für das eigene „Spielen“ notwendig ist.

Die Lizenz zu den obigen Beispielen findet Ihr auf der eigenen Lizenz-Seite.

Letzte Bearbeitung: 11.01.2020