我正在评估在JTextPane(textpane)中用作编辑器工具包的StyledEditorKit的可用性。一旦用户将任何内容键入编辑器并关闭编辑器,程序将获取Document(textpane.getDocument())并尝试序列化对象Document(
out = new ObjectOutputStream(new FileOutputStream("f://test1234.ser"));
out.writeObject(doc);)
)。
但是此时会引发NotSerializableException。但是,如果用户没有键入任何文本(编辑器未更改Document对象),则应用程序可以顺利地序列化Document对象。使用Java 5和6发生此行为,但不使用1.4。
有什么想法吗?
感谢。 Felipo。
答案 0 :(得分:1)
实际上你必须使用一个kit的write()方法传递Writer或OutputStream。当您需要还原文档时,您创建一个空文档并使用read()方法传递InputStream或Writer。 例如。 HTMLEditorKit生成内容的html表示。 RTFEditorKit相应地产生rtf。 例如,您可以编写自己的Writer / Reader http://java-sl.com/editor_kit_tutorial_reader_writer.html