TextPane Bold-Italic-Underline

In diesem Artikel zeige ich Euch die Basisformatierungen der JTextPane-Komponente, nämlich das markieren der gewünschten Textstelle in Bold (Fett), Italic (Kursiv) und Underline (Unterstrich).

Als Basis dient das TextPane RTF und ich habe drei Buttons für Bold, Italic und Underline hinzugefügt. Auch an dieser Stelle kommt der Hinweis, das Ihr zum Nacharbeiten des Beispiels intelliJ IDEA benötigt.

Wie funktioniert die Formatierung? Ihr benötigt als Erstes eine Routine (textPane.addCaretListener), welche auf Selektionen im TextPane achtet und die „Koordinaten“ für den Beginn und das Ende in die Variablen selectionStart und selectionEnd überträgt. Zusätzlich erhält das StyledDocument die Koordinaten übermittelt.

Der Klick auf den jeweiligen Formatierungs-Button löst immer die gleiche Aktionskette aus: auslesen der Formatierung am Anfang der Selektion, ein Umschalter für die gewünschte Formatierung (z.B. wenn es nicht Bold-formatiert war ist der Text nun Bold, ist der Text vorher Italic-formatiert wird daraus „nicht“-Italic).

Zur Unterstützung dient die Methode „public MutableAttributeSet setStyles(MutableAttributeSet attr)“, welche die Formatierungen ausliest und zwischenspeichert.

Ein Tipp von meiner Seite: Ihr solltet Euch diese Bearbeitungsschritte genau ansehen, denn darauf wird bei den anderen Formatierungen immer wieder zugegriffen.

Hier nun der Sourcecode:

Der XML-Code der Form:

 
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 zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Bearbeitung: 31.12.2019