Hallo,
ich knoble jetzt schon laenger an folgendem Problem, hab haufenweise Tutorials und
Beispiele durchgesehen und ausprobiert, aber irgendwie fehlt mir der richtige Ansatz und
ich hoffe hier kann mir jemand einen Hinweis geben.
Was ich machen will:
Ich lese aus einer xml-Datei ein Element, welches xml-formatierten Text enthaelt.
Beispiel: <Elem>Here comes some <i>italic</i> text</Elem>.
Alles was sich zwischen den Elem-Tags befindet moechte ich jetzt in ein JTextPane
reinschmeissen, JTextPane.setText("Here comes some <i>italic</i> text"); und dieser
soll dann formatiert dargestellt werden. Also <i> wird dann wirklich als kursiv dargestellt,
<b> als fett, usw.
Der User kann jetzt in dem TextPane rumaendern und den Text Formatieren wie er will,
wobei kursiv, unterstrichen, fett, und code - ausgewaehlt werden kann.
Irgendwann spaeter wird das alles wieder in eine xml-Datei geschrieben und hier will
ich aus dem JTextPane z.Bsp. mittels "getText" den xml-String wieder rausbekommen.
Ansatz
Da ich es bei JTextPane gerne bei dem einfachen Interface belassen wuerde (sprich
zugriff ueber 'setText' und 'getText' und damit trasparent fuer den Rest der Appl) ,
koennte ich von dem JTextPane ableiten und
im ctor das verwendete EditorKit und Document durch ein eigenes ersetzen.
Dazu muesste ich in 'setText' den uebergebenen String zerstueckeln und ueber
entsprechende StyleAttribute an das Document weiterreichen... ??
Allerdings gestaltet sich das auslesen ueber getText entsprechend komplizierter,
da ich die StyleAttribute des Documents parsen muss, um diese xml-formatiert
zurueckzugeben.
Ein Paar Versuche hab ich mit HTMLEditorKit gemacht, da bekomme ich allerdings
eine komplette html-struktur zurueck (also mit <html><head> usw.). Die koennte
ich zwar parsen und alles bis <body> wegschmeissen, allerdings gefaellt mir der Rest
der Struktur auch nicht, da das xml-file lesbar bleiben soll, und ich keine Tags wie
<br style="..."> fuer einfache newlines haben moechte, sondern dann nur <br/>.
Ich muesste also den Rest auch parsen - so eine Art code-beautifyer...
Ihr seht es gibt eine Menge Probleme und irgendwie ist die Struktur von JTextPane,
EditorKit und Document nicht gerade intuitiv und das zusammenspiel schlecht dokumentiert.
Also wo soll ich ansetzen - oder alles ueber das Document abhandeln???
Also, wenn jemand konkrete Loesungsansaetze hat - dann nur her damit.
(Bitte keine blossen Verweise auf Tutorials oder sonstiges, ich sitz schon
seit ein paar Tagen an dem Problem und hab schon einige Stunden in Tutorials,
Beispiele, etc. investiert.)
Vielen Dank im Vorraus ...
ich knoble jetzt schon laenger an folgendem Problem, hab haufenweise Tutorials und
Beispiele durchgesehen und ausprobiert, aber irgendwie fehlt mir der richtige Ansatz und
ich hoffe hier kann mir jemand einen Hinweis geben.
Was ich machen will:
Ich lese aus einer xml-Datei ein Element, welches xml-formatierten Text enthaelt.
Beispiel: <Elem>Here comes some <i>italic</i> text</Elem>.
Alles was sich zwischen den Elem-Tags befindet moechte ich jetzt in ein JTextPane
reinschmeissen, JTextPane.setText("Here comes some <i>italic</i> text"); und dieser
soll dann formatiert dargestellt werden. Also <i> wird dann wirklich als kursiv dargestellt,
<b> als fett, usw.
Der User kann jetzt in dem TextPane rumaendern und den Text Formatieren wie er will,
wobei kursiv, unterstrichen, fett, und code - ausgewaehlt werden kann.
Irgendwann spaeter wird das alles wieder in eine xml-Datei geschrieben und hier will
ich aus dem JTextPane z.Bsp. mittels "getText" den xml-String wieder rausbekommen.
Ansatz
Da ich es bei JTextPane gerne bei dem einfachen Interface belassen wuerde (sprich
zugriff ueber 'setText' und 'getText' und damit trasparent fuer den Rest der Appl) ,
koennte ich von dem JTextPane ableiten und
im ctor das verwendete EditorKit und Document durch ein eigenes ersetzen.
Dazu muesste ich in 'setText' den uebergebenen String zerstueckeln und ueber
entsprechende StyleAttribute an das Document weiterreichen... ??
Allerdings gestaltet sich das auslesen ueber getText entsprechend komplizierter,
da ich die StyleAttribute des Documents parsen muss, um diese xml-formatiert
zurueckzugeben.
Ein Paar Versuche hab ich mit HTMLEditorKit gemacht, da bekomme ich allerdings
eine komplette html-struktur zurueck (also mit <html><head> usw.). Die koennte
ich zwar parsen und alles bis <body> wegschmeissen, allerdings gefaellt mir der Rest
der Struktur auch nicht, da das xml-file lesbar bleiben soll, und ich keine Tags wie
<br style="..."> fuer einfache newlines haben moechte, sondern dann nur <br/>.
Ich muesste also den Rest auch parsen - so eine Art code-beautifyer...
Ihr seht es gibt eine Menge Probleme und irgendwie ist die Struktur von JTextPane,
EditorKit und Document nicht gerade intuitiv und das zusammenspiel schlecht dokumentiert.
Also wo soll ich ansetzen - oder alles ueber das Document abhandeln???
Also, wenn jemand konkrete Loesungsansaetze hat - dann nur her damit.
(Bitte keine blossen Verweise auf Tutorials oder sonstiges, ich sitz schon
seit ein paar Tagen an dem Problem und hab schon einige Stunden in Tutorials,
Beispiele, etc. investiert.)
Vielen Dank im Vorraus ...