23. maj 2004 - 20:24Der er
4 kommentarer og 1 løsning
Programmering af Teksteditor
Hej.
Jeg havde tænkt mig at lave en slags teksteditor, som skal generere html kode ud af det man skriver - og lægge det i en database (til generering af nyhedsbreve)... Men jeg har et lille problem, som jeg ikke kan gennemskue hvordan man fikser. Hvis nu man skriver løs i et JTextField og så vil have ændret tekstens formattering midt i det hele (Bold, Farve eller andet) med tryk på en "Bold" knap, hvordan hulen skal man gøre det ??
ok, jeg kan så se at jeg skal bruge et JTextPane, og at jeg kan skrive html kode på en JLabel. Men jeg vil gerne have et lille kodeeksempel for pointsne.
Et lille fungerende eksempel med JTextPane og en Bold / Not Bold knap ville være genial for mig.....
public class EditEx { public static void main( String[] args ) { javax.swing.JTextPane textPane = new javax.swing.JTextPane(); javax.swing.JButton button = new javax.swing.JButton("Bold on/off");
// meget central linie: button.addActionListener( new javax.swing.text.StyledEditorKit.BoldAction() );
Her er lidt fra beskrivelsen af StyledEditorKit.StyledTextAction som BoldAction er en instans af (og som forklarer "magien" i det ovenstående):
An action that assumes it's being fired on a JEditorPane with a StyledEditorKit (or subclass) installed. This has some convenience methods for causing character or paragraph level attribute changes. The convenience methods will throw an IllegalArgumentException if the assumption of a StyledDocument, a JEditorPane, or a StyledEditorKit fail to be true.
The component that gets acted upon by the action will be the source of the ActionEvent if the source can be narrowed to a JEditorPane type. If the source can't be narrowed, the most recently focused text component is changed. If neither of these are the case, the action cannot be performed.
Beklager at der er gået så lang tid, men jeg har prøvet at rode med JEditorPane og JTextPane et par gange. Det er fint nok at de kan vise html kode, og er editerbare. Og StyledEditorKit har gode funktioner. Jeg har bare ikke endnu fundet ud af hvordan man får html kode ud af dem.
Bold knappen i ovenstående eksempel virker fint, men kan du lave en knap, der giver html koden for indholdet i JTextPane't bagefter ?? I så fald er du smuk :)
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.