Avatar billede carstenknudsen Nybegynder
18. marts 2002 - 14:13 Der er 8 kommentarer og
1 løsning

XML saving af JTextPane indhold

Er der nogen der kan forklare hvordan man gemmer
indholdet af et JTextPane som er formatteret, det
skal gemmes i XML så det kan importeres igen senere.
Når jeg forsøger at gemme det som beskrevet
i javadoc dokumentationen kommer teksten og
lidt bønne information ud, men information om
formatteringen (bold, italic etc) er ikke til stede.
Avatar billede steel Praktikant
19. marts 2002 - 14:21 #1
Hvorfor vil du have det som XML? Er HTML ikke godt nok?

JTextPane.setContentType( "text/html")    ;]

Så skal du bruge HTMLEditorKit til at gemme HTML:

    StringWriter strWriter = new StringWriter();

    HTMLDocument    htmlDoc  = (HTMLDocument) pane.getDocument();
    HTMLEditorKit  htmlEdit = (HTMLEditorKit) pane.getEditorKit();

    // Udskriv HTML til String
    htmlEdit.write( strWriter, htmlDoc, 0, htmlDoc.getLength());

    return strWriter.toString();
Avatar billede carstenknudsen Nybegynder
19. marts 2002 - 14:31 #2
Fordi det skal kunne hentes ind igen, det er ikke
html, det er formatteret text hvor der kan være indsat
billeder etc. At gemme html er selvfølgelig trivielt.
Avatar billede steel Praktikant
19. marts 2002 - 14:40 #3
Carsten, HTML kan også hentes ind igen.
Avatar billede steel Praktikant
19. marts 2002 - 14:42 #4
Altså, hvis du ikke vil have HTML, kan du tage fat i Document'et - oprette den ElementIterator, og så konvertere hvert Element til dine specifikke XML-tags.
Avatar billede carstenknudsen Nybegynder
19. marts 2002 - 14:59 #5
Carsten, HTML kan også hentes ind igen.: ja, det
er da klart.
steel:  I 1.4.0 kan bønner og swing komponenter
gemme sig selv i xml format og hentes ligeså.
F.eks. som fra dokumentationen:
XMLEncoder e = new XMLEncoder(
                          new BufferedOutputStream(
                              new FileOutputStream("Test.xml")));
      e.writeObject(new JButton("Hello, world"));
      e.close();
Det jeg er interesseret i er om det ikke kunne lade
sig gøre med JTextPane der jo også er en swing komponent.
Problemet er, at den ikke gemmer information om
formatteringen, kun om teksten. Jeg er naturligvis ikke
interesseret i at definere egne xml-tags, jeg vil gerne
have noget lignende ovenstående til at virke.
Avatar billede steel Praktikant
19. marts 2002 - 16:49 #6
Okay, det kender jeg slet ikke noget til. Held og lykke.
Avatar billede carstenknudsen Nybegynder
20. marts 2002 - 10:42 #7
steel: tak for dine kommentarer. Det er jo muligt
at det overhovedet ikke kan lade sig gøre, og
man selv skal lave det beskidte arbejde.
Avatar billede steel Praktikant
20. marts 2002 - 11:54 #8
Du er velkommen.. ;]

ElementIterator kender jeg i hvert fald - og den virker. I JDK 1.3 fungerer javax.swing.text.html.HTMLDocument.Iterator ikke korrekt, så HVIS man bliver nødt til at gøre tingene selv, ville jeg holde mig til ElementIterator.
Avatar billede carstenknudsen Nybegynder
03. april 2002 - 14:45 #9
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværksteknikere til design, drift og vedligehold ved Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret

European Stonecraft

Intern Navision/BC Supporter