Как создать собственную структуру документа Swing - PullRequest
2 голосов
/ 03 декабря 2011

У меня есть 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 Ответ

1 голос
/ 03 декабря 2011

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

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

...