我有一个serilize文件,它保存了Jtable的DataVector。当我想反序列化它会抛出一个错误,告诉我Vector不能被转换为默认的tableModel。
这里是序列化方法:
fileOut.writeObject(model2.getDataVector()); //I save just the Data Vector.
这里是反序列化过程:
ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:/Users/Harry/Desktop/clients.txt"));
DefaultTableModel dtm = (DefaultTableModel)in.readObject();
JTable table = new JTable(dtm);
错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Vector cannot be cast to javax.swing.table.DefaultTableModel
如何从向量转换为默认表模型以将数据向量反序列化回我的Jtable?
答案 0 :(得分:0)
一般来说,你有三个选择:
DefaultTableModel
。这对于短期应用程序是可以的,但您不应该依赖它作为长期存储数据的一致机制。DefaultTableModel
构造函数构造新的DefaultTableModel(Vector, Vector)
。请注意,如果您在反序列化期间已经知道列名称,则无法通过网络传递此数据。TableModel
,它包装了您的Serializable数据项的基础List<T>
。这将是我的首选。