gpt4 book ai didi

java - 序列化 JTextPane 的文档是否序列化 JTextPane 的监听器?

转载 作者:行者123 更新时间:2023-11-30 09:29:29 27 4
gpt4 key购买 nike

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

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

我怀疑如果 Document 包含 caretListener,这就是出现此异常的原因。

这是序列化它的代码:

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();

然后我只是在数据库中保存数据

附录

这是自定义插入符监听器:

MyTextPane textpane = new MyTextPane();
textpane.addCaretListener(new caretListener());
public class caretListener implements CaretListener {

MyTextpane textArea;
JToggleButton boldbutton;
JToggleButton italicbutton;
JToggleButton underlinebutton;
JComboBox fontscomboBox;
JComboBox fontSizecombobox;
// Methods
...
}

最佳答案

Document 通过Writer 序列化,通过Reader 反序列化。使用 JTextPanegetEditorKit() 和工具包的写入/读取方法。

关于java - 序列化 JTextPane 的文档是否序列化 JTextPane 的监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631150/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com