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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top