StyledDocument mit Writer übergeben

vR34kSH0w

Mitglied
Hi,
ich muss das StyledDocument eines JTextPanes eines Clients an den Server übergeben. Eine Verbindung besteht aber nur durch BufferedReader und -Writer.
Die Methode toString() von StyledDocument gibt beispielsweise dies hier zurück: "javax.swing.text.DefaultStyledDocument@3a33517f"

Ist es möglich, aus diesem String das StyledDocument zu rekonstruieren? Wenn ja, wie?

Gruß
vR34k$H0w
 
Nein, ist es nicht.
Aber DefaultStyledDocument ist serializierbar, also könntest du es mit einem ObjectOutput/InputStream übertragen
 
das mit dem defaultstyleddocument funktioniert prinzipiell, aber das sieht auch richtig aus ^^
gäbe es da ein problem mit? :

Java:
package tests.DocViaWriter;

import java.awt.*;
import java.io.*;
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class DocViaWriter
{
	public DocViaWriter() throws ClassNotFoundException, IOException
	{
		StyledDocument sd = new JTextPane().getStyledDocument();
		
		Style st = sd.addStyle("MyStyle", null);
		
		StyleConstants.setForeground(st, Color.RED);
		
		System.out.println(sd.getStyle("MyStyle"));
		
		FileOutputStream fos = new FileOutputStream(new File("./defStyledDoc_user1.dsd"));
		
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		
		oos.writeObject(sd);
		
		FileInputStream fis = new FileInputStream("./defStyledDoc_user1.dsd");
		
		ObjectInputStream ois = new ObjectInputStream(fis);
		
		StyledDocument sd2 = (StyledDocument) ois.readObject();
		
		System.out.println(sd2.getStyle("MyStyle"));
	}
	
	public static void main(String[] args) throws ClassNotFoundException, IOException
	{
		new DocViaWriter();
	}
}
 
ausprobiert hab ich es, das hier ist die ausgabe beim normalen styleddocument:

NamedStyle:MyStyle {name=MyStyle,foreground=java.awt.Color[r=255,g=0,b=0],}
NamedStyle:MyStyle {foreground=java.awt.Color[r=255,g=0,b=0],name=MyStyle,}

das hier mit defaultstyleddocument

NamedStyle:MyStyle {name=MyStyle,foreground=java.awt.Color[r=255,g=0,b=0],}
NamedStyle:MyStyle {name=MyStyle,foreground=java.awt.Color[r=255,g=0,b=0],}

kommt ja eigentlich aufs gleiche heraus aber ich weiß nicht ob die reihenfolge probleme macht!?!?!
 

Zurück
Oben