У меня есть 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-интерфейса для создания собственной структуры документа?