我正在评估在JTextPane(文本窗格)中用作编辑器工具包的StyledEditorKit的可用性。一旦用户在编辑器中键入任何内容并关闭编辑器,程序就会获取文档(textpane.getDocument())并尝试序列化对象文档(
out = new ObjectOutputStream(new FileOutputStream("f://test1234.ser"));
out.writeObject(doc);))。
但在这一刻,一个NotSerializableException被引发了。但是,如果用户不键入任何文本(编辑器没有更改Document对象),则应用程序能够毫无问题地序列化Document对象。这种行为在使用Java5和6时会发生,但不会使用1.4。
有什么想法吗?
谢谢。菲利波。
发布于 2011-02-02 14:33:07
实际上,您必须使用工具包的write()方法中的一个来传递Writer或OutputStream。当您需要恢复文档时,您可以创建一个空的文档,并使用read()方法传递InputStream或Writer。例如,HTMLEditorKit产生内容的html表示。RTFEditorKit相应地生成rtf。您可以编写自己的写入器/阅读器,参见示例http://java-sl.com/editor_kit_tutorial_reader_writer.html
https://stackoverflow.com/questions/4870979
复制相似问题