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.

Другие вопросы по тегам