HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungJava
Besucher online: 474
Schnellsuche

Anzeigen

Community

Foren
Java Seite 1/1
Anspruchsvolle GUI Aufgabe (formatierte Datei speichern)
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Nachricht
BlubbBlubb
Titel: Anspruchsvolle GUI Aufgabe (formatierte Datei speichern) 24.11.2010 14:15
26 Punkte (?)
 
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]
Private Nachricht senden  
 
Emuhkuh
Titel: Anspruchsvolle GUI Aufgabe (formatierte Datei speichern) 05.12.2010 01:56
468 Punkte (?)
 
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!
Private Nachricht senden  
 
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login