JTable и сериализация
От: espada_de  
Дата: 28.05.05 20:35
Оценка:
Проблема в следующем. Есть JTable которая содержит кроме всего прочего custom-объекты. Custom-объекты имплементируют Serializable. JTable помещена в JScrollPane. JTable сериализуется по кнопке и при следующем старте восстанавливается. Но колонки JTable после восстановления не отображаются, хотя данные в модели на месте, число строк и столбцов соответствует их числу до сериализации. Исключения не выбрасываются. Что я еще забыл
Re: JTable и сериализация
От: Risotto Украина  
Дата: 28.05.05 21:20
Оценка:
Здравствуйте, espada_de, Вы писали:

_>Проблема в следующем. Есть JTable которая содержит кроме всего прочего custom-объекты. Custom-объекты имплементируют Serializable. JTable помещена в JScrollPane. JTable сериализуется по кнопке и при следующем старте восстанавливается. Но колонки JTable после восстановления не отображаются, хотя данные в модели на месте, число строк и столбцов соответствует их числу до сериализации. Исключения не выбрасываются. Что я еще забыл


Что имеется ввиду под колонкой?
Кто-то сказал когда-то давно, что людям свойственно убивать тех, кого любишь. Что ж, верно и обратное.
Re[2]: JTable и сериализация
От: espada_de  
Дата: 28.05.05 22:30
Оценка:
Здравствуйте, Risotto, Вы писали:

R>Что имеется ввиду под колонкой?


TableColumn. Я было подумал, что TableColumnModel не сериализировалась, ан нет, сколько столбцов задал до сериализации, столько и восстановил. Только не отображается ни фига
Re: JTable и сериализация
От: b_manvelyan Украина  
Дата: 29.05.05 09:55
Оценка:
Здравствуйте, espada_de, Вы писали:

_>Проблема в следующем. Есть JTable которая содержит кроме всего прочего custom-объекты. Custom-объекты имплементируют Serializable. JTable помещена в JScrollPane. JTable сериализуется по кнопке и при следующем старте восстанавливается. Но колонки JTable после восстановления не отображаются, хотя данные в модели на месте, число строк и столбцов соответствует их числу до сериализации. Исключения не выбрасываются. Что я еще забыл


Custom-объекты — это те которые отображаются через собственный TableCellRenederer??
Не отображаются все данные или только часть?
TableModel восстанавливается?
Re[2]: JTable и сериализация
От: espada_de  
Дата: 29.05.05 10:16
Оценка:
Здравствуйте, b_manvelyan, Вы писали:

_>Custom-объекты — это те которые отображаются через собственный TableCellRenederer??

Да
_>Не отображаются все данные или только часть?
Все содержимое не отображается
_>TableModel восстанавливается?
Да

Я выделил все это счастье в отдельное тест-приложение и упростил классы. По кнопке добавляю в JTable новые строки. После восстановления приведенный ниже код выполняется и показывает статус custom-объекта в последней строке. Более того, можно добавить по кнопке новые строки, сериализовать JTable и после восстановления строки на месте, только не отображаются, сволочи
...
// is - ObjectInputStream
jTable1=(JTable)is.readObject();
Vector rows=(Vector)((MyDataModel)jTable1.getModel()).getDataVector();
Vector col =(Vector)rows.elementAt(rows.size()-1);
MyTestClass mtc=(MyTestClass)col.elementAt(col.size()-1);
JOptionPane.showMessageDialog(null,mtc.getValue(mtc.getState()));
...
Re: JTable и сериализация
От: espada_de  
Дата: 29.05.05 21:34
Оценка:
Понял все. Это я сам прогнал — сначала вставил JTable в JScrollPane, а потом десериализовал. Наоборот — работает, правда с заморочкой с CellEditor, но и это победим
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.