Как создать собственную структуру документа 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
Вы можете использовать то же самое определение желаемой структуры.