org.jdesktop.swingbinding.JTableBinding $ BindingTableModel не может быть приведен к javax.swing.table.DefaultTableModel.

Я попытался сгруппировать заголовок JTable, и для этого я хочу получить DefaultTableModel текущего JTable. Но когда я попытался получить модель таблицы следующим образом:

<code>DefaultTableModel dm=(DefaultTableModel) tblTet.getModel();
</code>

Это показывает следующее исключение:

org.jdesktop.swingbinding.JTableBinding$BindingTableModel cannot be cast to 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.

 08 февр. 2013 г., 09:28
нормально да Но OP использует (лучше) BeansBinding и не контролирует тип внутренне назначенной TableModel.

Ваш ответ на вопрос