Сериализуемое Исключение в настроенном Автозаполнении JComboBox
У меня есть JTable
и один столбец этой таблицы использует JComboBox
как редактор. Таким образом, это работало нормально. Затем я продолжил использовать этот файл JAR здесь, чтобы включить автозаполнение в моем 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 ответ
Решение
Один из вариантов - создать собственный класс, который расширяет org.jdesktop.swingx.autocomplete.AutoCompleteComboBoxEditor
и реализует Serializable
и установите этот класс в качестве редактора в вашем выпадающем списке.