Der er noget med HTMLEditorKit og HTMLFactory(). Hvordan bruger man det ?
Synes godt om
Slettet bruger
04. september 2004 - 22:32#2
Ja, du kan knytte et StyledEditorKit til din JTextPane-komponent, vha. metoden setEditorKit(EditorKit kit). Du skal knytte et HTMLEditorKit til denne komponent såfremt du (i dette tilfælde) vil redigere / arbejde i HTML.
Html-koden kan (efter du har konstrueret et HTML-dokument) så trækkes ud vha. metoden write(Writer out, Document doc, int pos, int len) i HTMLEditorKit'et.
Jeg finder lige et eksempel på en HTML-editor som gør brug af et HTMLEditorKit...
Synes godt om
Slettet bruger
04. september 2004 - 22:45#3
Her er kapitel 20 (i PDF-format) fra "Swing 2nd edition". Det omhandler at bygge en HTML-editor i Java / Swing.
Der skal lige gøres opmærksom på at der tages udgangspunkt i de forrige kapitler (mht. nogle komponenter osv.), men du får den grundlæggende viden (og brudstykker af mere omfattende dele) om hvordan du benytter JTextPane, Document's og StyledEditorKit's.
På et JEditorPane, kan man bare skrive getText(), så får man html koden. Hvorfor hulen findes det ikke på JTextPane
Synes godt om
Slettet bruger
04. september 2004 - 23:03#5
Fordi det er 2 forskellige komponenter?
Det må du ikke spørge mig om, desuden er metoden metoden write(Writer out, Document doc, int pos, int len) i HTMLEditorKit'et da heller ikke så vanskelig at bruge, men nej...den returnerer ikke umiddelbar en String. Der kan dog bruges en StringWriter til at tage imod output, Document kan også fået vha. JTextPane-api'et, pos burde være 0, og længden på dokumentet burde heller ikke være umuligt at anskaffe.
Men... du har ret, det er ikke så nemt som at bruge getText()-metoden og få returneret en streng.
Jeg ved ikke lige hvad der sker for mig, men getText() var vinderen. Jeg er bange for at jeg har testet med en for gammel version af JRE, men med 1.5.0 var det en vinder. Hvis du har lyst kan du prøve dette reviderede eks.
javax.swing.JFrame frame = new javax.swing.JFrame(); frame.getContentPane().add(textPane,java.awt.BorderLayout.NORTH); frame.getContentPane().add(button1,java.awt.BorderLayout.WEST); frame.getContentPane().add(button2,java.awt.BorderLayout.EAST); frame.pack(); frame.show(); } public static void skrivLort() { System.out.println(textPane.getText()); } public static void focus() { textPane.requestFocus(); } }
Det er simpelthen smukt. Tusind tak for din hjælp :)
Synes godt om
Slettet bruger
05. september 2004 - 00:25#10
Jamen så siger jeg da mange tak for pointene :-)
Synes godt om
Ny brugerNybegynder
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.