【发布时间】:2012-03-26 14:43:37
【问题描述】:
我正在尝试序列化 JPanel,但每次我收到此错误:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: javax.swing.GroupLayout
你能告诉我,可能是什么问题或序列化它的正确方法是什么。
我做的很简单:
用于序列化:
FileOutputStream f = new FileOutputStream("myfile.dat");
ObjectOutputStream ostream = new ObjectOutputStream(f);
Object object = panel; //where panel is a JPanel type object
ostream.writeObject(object);
ostream.close();
现在反序列化:
File file = new File("myfile.dat");
ObjectInputStream in;
try {
in = new ObjectInputStream(new FileInputStream(file));
object = (JPanel) in.readObject();
in.close();
} catch (Exception e2) {
e2.printStackTrace();
}
在最后一步读取序列化对象时,我遇到了上述错误。是什么原因,或者任何想法应该如何做到这一点?
【问题讨论】:
-
最好序列化有关面板的数据或子项的值(文本字段、组合、列表等),而不是面板本身。
-
@AndrewThompson,是的,但是对我来说,在面板中挑选每个对象很复杂,面板本身是 JUNG 框架的一部分,被称为可视化查看器,显然扩展了 JPanel
标签: java swing serialization jpanel