So erstellen Sie eine benutzerdefinierte Swing -Dokumentstruktur
-
27-10-2019 - |
Frage
Ich habe ein JEditorPane
einen Brauch halten EditorKit
und ein Brauch Document
(abgeleitet von DefaultStyledDocument).
Das Folgende ist ein Beispiel für den Inhalt des JEditorPane
:
Erste Absatz
zweiter Absatz
Für das obige Beispiel erhalte ich eine Dokumentstruktur mit dem folgenden XML-Äquivalent:
<root>
<section>
<paragraph>
<content>first</content>
<content bold="true">paragraph</content>
</paragraph>
<paragraph>
<content>second paragraph</content>
<content>\n</content>
</paragraph>
</section>
</root>
Beachten Sie, dass die obigen Tag -Namen durch die Funktion von Element.getName () bestimmt werden.
Meine Absicht ist es, diese Struktur durch benutzerdefinierte Elementtypen zu erweitern, um andere Inhalte als gestalteten Text zu bearbeiten.
Ein Beispiel wäre, den Redakteur auf eine Musik-Note-Redakteurin zu erweitern, um eine XML-Struktur wie diese zu erhalten:
<root>
<section>
<paragraph>
<content>first</content>
<content bold="true">paragraph</content>
</paragraph>
<musicnotes>
<bar>
<note>C</note>
<note>D</note>
<note>E</note>
</bar>
</musicnotes>
</section>
</root>
Wie ich sehe, werden die Stil- und Absatzelemente im Dokument erstellt.insertstring () und document.setcharacterAttributes () Methoden.
Mein Problem ist, dass ich keine Ahnung habe, wie man diese Methoden überschreibt (oder Anhänger schreibt), um nicht zur Standardstruktur zurückzukehren, sondern benutzerdefinierte Elementsorten zu verwenden.
Ich weiß überhaupt nicht einmal, ob dies der richtige Ansatz ist. Muss ich meine eigene Implementierung des Dokumentenschnittstellens erstellen, um eine benutzerdefinierte Dokumentstruktur zu erstellen?
Lösung
Siehe das Beispiel der Erstellung von Tabellen.http://java-sl.com/jeditorPanetables.html
Sie können die gleiche definierende gewünschte Struktur verwenden.