序列化JTextPane的Document,序列化JTextPane的监听器吗?

时间:2012-11-29 17:16:05

标签: java swing serialization listener jtextpane

我正在序列化JTextPane的{​​{1}},以便将其样式文本保存到数据库中。我有一个Document附加到caretListener,我想知道是否将此JTextPane序列序列化为Document。我之所以需要知道这一点,是因为自定义caretListener类包含caretListener,并且在尝试序列化时出现以下异常:

JComboBox

我怀疑如果Document包含caretListener,那就是这个异常的原因。

以下是序列化它的代码:

java.io.NotSerializableException: com.apple.laf.AquaComboBoxUI

然后我只是将DefaultStyledDocument doc = (DefaultStyledDocument) getCellEditor().getCellEditorValue(); doc.setDocumentFilter(null); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject((DefaultStyledDocument) doc); oos.flush(); byte[] data = bos.toByteArray(); oos.close(); bos.close(); 保存在数据库中。

附录

这是自定义插入符听众:

data

1 个答案:

答案 0 :(得分:2)

Document通过Writer序列化,并通过Reader反序列化。使用JTextPane的{​​{1}}以及套件的写入/读取方法。