Comment créer une oscillation personnalisée structure de document
-
27-10-2019 - |
Question
J'ai un JEditorPane
tenant un EditorKit
personnalisé et un Document
personnalisé (dérivé de DefaultStyledDocument).
Ce qui suit est un exemple pour le contenu du JEditorPane
:
premier paragraphe
deuxième alinéa
Pour l'exemple ci-dessus, je reçois un document structure avec l'équivalent XML suivant:
<root>
<section>
<paragraph>
<content>first</content>
<content bold="true">paragraph</content>
</paragraph>
<paragraph>
<content>second paragraph</content>
<content>\n</content>
</paragraph>
</section>
</root>
Notez que les noms de balises ci-dessus sont déterminées par la fonction Element.getName ().
Mon intention est d'étendre cette structure par types d'éléments personnalisés pour modifier le contenu autre que le texte de style.
Un exemple serait étendre l'éditeur d'être un rédacteur note de musique pour obtenir une structure XML comme ceci:
<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>
Comme je le vois, le paragraphe et Style--éléments sont créés sur les méthodes Document.insertString () et Document.setCharacterAttributes ().
Mon problème est que je n'ai aucune idée comment remplacer ces méthodes (ou pendentifs d'écriture) à ne pas revenir à la structure par défaut, mais d'utiliser les types d'éléments personnalisés.
A tout ce que je ne sais même pas si cela est la bonne approche. Dois-je créer mon propre mise en œuvre du Document-interface pour créer une structure de document personnalisé?
La solution
Voir l'exemple de tables création. http://java-sl.com/JEditorPaneTables.html
Vous pouvez utiliser la même définition de la structure désirée.