|
|
BlubbBlubb
|
| Titel: Anspruchsvolle GUI Aufgabe (formatierte Datei speichern) |
24.11.2010 14:15 |
|
|
Anmeldungsdatum: 09.06.2010
Beiträge: 26
|
hi ich programmiere momentan einen kleinen eigenen editor. dabei bin ich auf folgendes problem gestoßen, dass ich bisher weder in einem anderen java forum, noch in diversen literaturen noch durch hilfe an der uni vollständig lösen konnte. ich habe eine JTextPane in der ich formatierten text schreibe in diesem beispiel "Hallo" das grün gefärbt ist. beim abspeichern und anschließendem laden gehen mir aber sämtliche formatierungen verloren. vielleicht könnt ihr mir helfen, wie ich die formatierungen beibehalten kann. hier der sourcecode:
[CODE]import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter;
import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.WindowConstants; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultStyledDocument; import javax.swing.text.EditorKit; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import javax.swing.text.StyledDocument; import javax.swing.text.html.HTMLDocument; import javax.swing.text.rtf.RTFEditorKit;
public class MyFrame extends JFrame { private JTextPane textPane; private StyledDocument doc; private EditorKit kit; public MyFrame() { super(); textPane = new JTextPane(); textPane.setContentType("text/rtf"); doc = (StyledDocument) textPane.getDocument(); kit = textPane.getEditorKit(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setSize(980, 630); setLocationRelativeTo(null); Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(new JScrollPane(textPane), BorderLayout.CENTER); SimpleAttributeSet attributes = new SimpleAttributeSet(); StyleConstants.setBackground(attributes, Color.GREEN);
try { doc.insertString(0, "Hallo", attributes); } catch (BadLocationException ble) { System.out.println("BadLocatioException"); }
String filename = "C:/Users/Me/Desktop/MyJava/TEST.rtf"; writeFile(filename); readFile(filename);
setVisible(true); }
private void writeFile(String filename) { try { kit.write(new FileOutputStream(filename), doc, 0, doc.getLength()); } catch (Exception ex) { ex.printStackTrace(); } }
private void readFile(String filename) { try { kit.read(new FileInputStream(filename), doc, doc.getLength()); } catch (Exception ex) { ex.printStackTrace(); } }
public static void main(String[] args) { new MyFrame(); } }[/CODE]
|
 |
|
| |
|
Emuhkuh
|
| Titel: Anspruchsvolle GUI Aufgabe (formatierte Datei speichern) |
05.12.2010 01:56 |
|
|
Anmeldungsdatum: 21.04.2010
Beiträge: 176
|
Hey,
Versuch es mal so:
FETTER TEXT!
Spreicherst du so, wie in BBCode. z.B. /bFETTER TEXT!/b und gehst dann den text buchstabe für buchstabe durch.
'/' zeigt dir das etwas besonderes mit dem Text ist 'b' Zeigt dir das der Text Fett geschrieben wird. "Text" '/' Siehe oben 'b' Zeigt dir nun, da du schon Fett schreibst das der Text wieder normal ist.
Das musst du natürlich noch für Größe usw machen, sowie beim in das JPane schreiben den Text mit deiner Formatierung speichern.
Ich denke mal so sollte es gehen. Hatte aber keine Zeit(und vor allem noch weniger Lust) es zu Probieren. Sorry!
Ich hoffe aber ich konnte trotzdem helfen! Viel Spaß und Erfolg noch!
|
 |
|
| |
|
|
|
|
|
|