Come creare una struttura di documento di oscillazione personalizzata
-
27-10-2019 - |
Domanda
Ho un JEditorPane
Tenendo un'usanza EditorKit
e un'usanza Document
(derivato dal documentazione predefinita).
Quello che segue è un esempio per il contenuto del JEditorPane
:
primo paragrafo
Secondo paragrafo
Per l'esempio sopra ottengo una struttura per documenti con il seguente XML equivalente:
<root>
<section>
<paragraph>
<content>first</content>
<content bold="true">paragraph</content>
</paragraph>
<paragraph>
<content>second paragraph</content>
<content>\n</content>
</paragraph>
</section>
</root>
Si noti che i nomi dei tag sopra sono determinati dalla funzione Element.getName ().
La mia intenzione è di estendere questa struttura per tipi di elementi personalizzati per modificare contenuti diversi dal testo in stile.
Un esempio sarebbe estendere l'editor per essere un editor di nota musicale per ottenere una struttura XML come questa:
<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>
A quanto pare, gli elementi di stile e paragrafo sono creati sui metodi document.insertString () e document.setcharacterattributes ().
Il mio problema è che non ho idea di come sovrascrivere questi metodi (o scrivere pendenti) per non tornare alla struttura predefinita ma di utilizzare tipi di elementi personalizzati.
Non so nemmeno se questo è l'approccio corretto. Devo creare la mia implementazione dell'interfaccia documento per creare una struttura di documenti personalizzati?
Soluzione
Vedi l'esempio della creazione di tabelle.http://java-sl.com/jeditorpanetables.html
Puoi usare la stessa struttura desiderata.