Как создать индивидуальную структуру документов свинга

StackOverflow https://stackoverflow.com/questions/8362429

Вопрос

у меня есть 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top