org.jdesktop.swingbinding.JTableBinding$BindingTableModel не может быть приведен к javax.swing.table.DefaultTableModel.
Я попытался сгруппировать заголовок JTable, и для этого я хочу получить DefaultTableModel текущего JTable. Но когда я попытался извлечь модель таблицы следующим образом:
DefaultTableModel dm=(DefaultTableModel) tblTet.getModel();
Это показывает следующее исключение:
org.jdesktop.swingbinding.JTableBinding $ BindingTableModel не может быть приведен к javax.swing.table.DefaultTableModel.
Потому что я использую JTableBeansBinding.
Кто-нибудь знает, как решить эту проблему (для получения DefaultTableModel)?
2 ответа
Согласно JavaDoc для BindingTableModel, класс не расширяет DefaultTableModel. Скорее, он реализует интерфейс TableModel. Это означает, что вы не можете привести к DefaultTableModel, только к TableModel:
TableModel dm=(TableModel) tblTet.getModel();
Вы должны создать свою таблицу следующим образом:
String[] columnNames = {"Row",
"Category",
"From Date",
"From Time",
"To Date",
"To Time",
"Description",
"Doc"};
Object[][] data = {};//Table Rows
table.setModel(new DefaultTableModel(data,columnNames));
вместо:
table=new JTable(data,columnNames);
тогда вы можете привести свою таблицу в значение defaultTableModel.