2011-02-02 27 views
0

我正在评估在JTextPane(textpane)中用作编辑器工具包的StyledEditorKit的可用性。一旦用户输入任何内容到编辑器并关闭编辑器,程序获取文档(textpane.getDocument()),并尝试序列化对象文件(StyledEditorKit - Document - NotSerializableException

out = new ObjectOutputStream(new FileOutputStream("f://test1234.ser")); 
out.writeObject(doc);) 

)。

但是在这一刻引发了一个NotSerializableException异常。但是,如果用户没有输入任何文本(Document对象未被编辑器更改),则应用程序能够顺利地序列化Document对象。这种行为发生在Java 5和6中,但不使用1.4。

任何想法?

谢谢。 Felipo。

回答

1

实际上,您必须使用工具包的write()方法之一传递Writer或OutputStream。当您需要恢复文档时,您将创建一个空文档并使用传递InputStream或Writer的read()方法。 例如HTMLEditorKit生成内容的html表示。 RTFEditorKit会相应地生成rtf。 你可以写你自己的作家/读者看例如 http://java-sl.com/editor_kit_tutorial_reader_writer.html

相关问题