Как создать собственную структуру документа Swing

У меня есть JEditorPane проведение обычая EditorKit и обычай Document (производный от DefaultStyledDocument).

Ниже приведен пример для содержания JEditorPane:


первый абзац

второй абзац


Для приведенного выше примера я получаю структуру документа со следующим XML-эквивалентом:

<root>
    <section>

        <paragraph>
            <content>first</content>
            <content bold="true">paragraph</content>
        </paragraph>

        <paragraph>
            <content>second paragraph</content>
            <content>\n</content>
        </paragraph>

    </section>
</root>

Обратите внимание, что имена тегов выше определяются функцией Element.getName().

Мое намерение состоит в том, чтобы расширить эту структуру с помощью пользовательских типов элементов для редактирования содержимого, отличного от стилизованного текста.

Примером может служить расширение редактора до редактора музыкальных заметок для получения XML-структуры, подобной этой:

<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>

На мой взгляд, элементы Style и Paragraph создаются на основе методов Document.insertString() и Document.setCharacterAttributes().

Моя проблема в том, что я понятия не имею, как переопределить эти методы (или написать подвески), чтобы не возвращаться к структуре по умолчанию, а использовать пользовательские виды элементов.

Я даже не знаю, правильный ли это подход. Нужно ли создавать собственную реализацию Document-интерфейса для создания собственной структуры документа?

1 ответ

Решение

Смотрите пример создания таблиц. http://java-sl.com/JEditorPaneTables.html

Вы можете использовать то же самое определение желаемой структуры.

Другие вопросы по тегам