11. august 2004 - 21:05Der er
22 kommentarer og 1 løsning
Jeditorpane som dreamweaver
Jeg har brug for at lave en html editor. Det vil sige en frame / applet, hvor man kan bruge knapper som "bold", "italic", "color" osv. Det er alt sammen fint nok med JEditorPane.
Tricket er at jeg vil "trække" html kode ud af det til sidst og skrive i en database.
Jeg har rodet lidt med det og fået hjælp af bl.a arne_v til forskellige ting, men jeg er ikke rigtig kommet helt dertil, hvor man kan det. Til gengæld er det lykkedes mig at lave en omvendt version, hvor man kan skrive html kode og se resultatet.
Den behøver ikke give html koden løbende, det vil måske blot forvirre brugeren (selv om, hvis den kan give det til sidst kan det vel næsten være det samme løbende, med lidt observer, eller blot keylistener ?!)
Jeg forestiller mig lidt hen ad word (bare med meget få knapper, som Bold, Italic, 2-3 tekststørrelser, centrer, højrestil, venstrestil, 2-3 farver, og hyperlink)
Når man er færdig med at skrive, redigere, skal man så kunne trykke på en knap, og teksten skal gemmes i databasen (som html), så den senere kan sendes som newsletter i html-emails :) eller beskues som preview, med formatteringerne...
Vi snakkede lidt om det i går, arne_v. Så du ved nogenlunde hvad jeg er ude efter :)
Mit problem er at få html koden ud til sidst... men hvis du siger at getText() kan det, burde det jo ikke være så svært. Jeg har prøvet dit eksempel, og der vælter jo html kode ud, så vi er klart på rette vej :)
The method replaceAll(String, String) is undefined for the type String
Men som sædvanligt er du smuk. Jeg bliver bare lige nødt til at rode med det aftenen igennem, så vender jeg tibage i morgen. Håber det er ok.
Jeg skal prøve med nogen af de forprogrammerede metoder i text.StyledEditorKit, de er vist rimeligt gode. Og så vil jeg se om html koden er klar med getText().
Men mange tak indtil videre - vi fortsætter i morgen :)
Jeg kan ikke rigtig komme videre med det. I JEditorPane kan man få HTML koden ud, som du skriver. Men jeg roder lidt rundt i det i dette spørgamål, for det er i JTextPane at Bold/Italic osv. ligger som metoder allerede i StyleEditorKit... -Men der kan jeg ikke få HTML koden ud til sidst :( Din App er for så vidt en god begyndelse, men der er mange bugs i. Hvis du f.eks markerer et bogstav bliver alle andre forekomster af det bogstav også bold, og så videre... Jeg vil naturligvis gerne give pointsne for din indsats, men efter jeg nu har haft dette problem oppe i 4-5 spørgsmål, vil jeg meget gerne have det løst :)
De bliver puttet ind efter alt den øvrige html kode, og caret'en flytter 4 tilbage. Så den gør hvad jeg beder den om. Det skal bare ind, der hvor man er...
Jeg håber stadig du er der (for mig) på et eller andet tidspunkt i morgen eller overmorgen, for jeg er ved at gå ud af mit gode skind. Men den med at den udskifter alle instancer af den markerede tekst må kunne fikses med:
int start = html.getSelectionStart(); int slut = html.getSelectionEnd();
Du skal have mange tak for dine anstrengelser, det er en sjov måde du har fundet på der... men på en eller anden måde har jeg fået det til at virke med JTextPane og StyledEditorKit. Du kan prøve den her, hvis du har lyst:
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(); } }
men tak for din altid smukke hjælp :)
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.