org.jdesktop.swingbinding.JTableBinding $ BindingTableModel无法强制转换为javax.swing.table.DefaultTableModel

时间:2012-04-12 21:08:48

标签: java swing jtable jsr296 beans-binding

我尝试对JTable标头进行分组,为此我想获得当前JTable的DefaultTableModel。但是当我试图像这样检索表模型时:

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

它显示以下异常:

  

org.jdesktop.swingbinding.JTableBinding $ BindingTableModel不能   强制转换为javax.swing.table.DefaultTableModel

因为我使用的是JTableBeansBinding。

有谁知道如何解决这个问题(用于检索DefaultTableModel)?

2 个答案:

答案 0 :(得分:3)

根据JavaDoc for BindingTableModel,该类不会扩展DefaultTableModel。相反,它实现了TableModel接口。这意味着您无法转换为DefaultTableModel,仅转换为TableModel:

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

答案 1 :(得分:-3)

你必须像这样创建你的表:

    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。