我有JTable
,此表的一列使用JComboBox
作为编辑器。这样它运作良好。然后我继续使用this jar file here在我的JComboBox
中启用自动填充功能。
现在我想保存表中的数据,如下所示;
public void actionPerformed(ActionEvent e) {
File outFile= new File("qoutatio.dat");
try {
FileOutputStream fous=new FileOutputStream(outFile);
ObjectOutputStream obj=new ObjectOutputStream(fous);
obj.writeObject(table);
obj.flush();
obj.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
程序产生以下错误:
run:
Feb 09, 2015 2:13:54 PM quotationGenerator.MainWindow$2 actionPerformed
SEVERE: null
java.io.NotSerializableException: org.jdesktop.swingx.autocomplete.AutoCompleteComboBoxEditor
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:441)
at javax.swing.JComboBox.writeObject(JComboBox.java:1569)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
这表明jar文件中的一个类不是Serializable
。理解。我的问题:有没有办法制作这个Serializable
?我们如何解决这个问题?
答案 0 :(得分:1)
一种选择是创建自己的类,扩展org.jdesktop.swingx.autocomplete.AutoCompleteComboBoxEditor
并实现Serializable
,并将此类设置为组合框中的编辑器。