首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化JTextPane的文档,序列化JTextPane的侦听器吗?

序列化JTextPane的文档,序列化JTextPane的侦听器吗?
EN

Stack Overflow用户
提问于 2012-11-29 17:16:05
回答 1查看 570关注 0票数 2

我正在序列化JTextPaneDocument,以便将其样式化为数据库。我在JTextPane上附加了一个caretListener,我想知道序列化这个Document是否也会序列化caretListener。我之所以需要知道这一点,是因为自定义的caretListener类包含JComboBox,当我尝试序列化时,我会得到以下异常:

代码语言:javascript
复制
java.io.NotSerializableException: com.apple.laf.AquaComboBoxUI

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

下面是序列化它的代码:

代码语言:javascript
复制
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保存在数据库里。

增编

以下是自定义插入符号侦听器:

代码语言:javascript
复制
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
    ...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 17:55:32

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13631150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档