org.jdesktop.swingbinding.JTableBinding$BindingTab

2019-02-28 16:40发布

问题:

I tried to group JTable header and for that I want to get the DefaultTableModel of current JTable. But when I tried to retrieve the table model like this:

DefaultTableModel dm=(DefaultTableModel) tblTet.getModel();

It shows the following exception:

org.jdesktop.swingbinding.JTableBinding$BindingTableModel cannot be cast to javax.swing.table.DefaultTableModel

Because I am using JTableBeansBinding.

Does anyone know how to solve this problem (for retrieving DefaultTableModel)?

回答1:

According to the JavaDoc for BindingTableModel, the class doesn't extend DefaultTableModel. Rather, it implements TableModel interface. This means that you cannot cast to DefaultTableModel, only to TableModel:

TableModel dm=(TableModel) tblTet.getModel();


回答2:

you have to create your table like this :

    String[] columnNames = {"Row",
            "Category",
            "From Date",
            "From Time",
            "To Date",
            "To Time",
            "Description",
            "Doc"};
    Object[][] data = {};//Table Rows

   table.setModel(new DefaultTableModel(data,columnNames));

instead of:

   table=new JTable(data,columnNames);

then you can cast your table model to defaultTableModel.