Как создать индивидуальную структуру документов свинга
-
27-10-2019 - |
Вопрос
у меня есть 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>
Как я вижу, элементы стиля и абзац создаются на Document.insertString () и Document.Setcharacterattributes () Методы.
Моя проблема в том, что я не имею ни малейшего представления, как переопределить эти методы (или писать подвески), чтобы не возвращаться к структуре по умолчанию, а для использования пользовательских видов элементов.
Я совсем не знаю, является ли это правильным подходом. Должен ли я создать свою собственную реализацию документа-интерфейса, чтобы создать пользовательскую структуру документа?
Решение
См. Пример создания таблиц.http://java-sl.com/jeditorpanetables.html
Вы можете использовать ту же определяющую желаемую структуру.