自动完成配置的JComboBox中的可序列化异常

时间:2015-02-09 12:20:20

标签: java swing jtable serializable

我有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?我们如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

一种选择是创建自己的类,扩展org.jdesktop.swingx.autocomplete.AutoCompleteComboBoxEditor并实现Serializable,并将此类设置为组合框中的编辑器。