无法将org.jdesktop.swingbinding.JTableBinding$BindingTableModel转换为javax.swing.table.DefaultTableModel
我试图对JTable头进行分组,为此我想得到当前JTable的DefaultTableModel。但当我尝试检索表模型时,如下所示:无法将org.jdesktop.swingbinding.JTableBinding$BindingTableModel转换为javax.swing.table.DefaultTableModel,java,swing,jtable,jsr296,beans-binding,Java,Swing,Jtable,Jsr296,Beans Binding,我试图对JTable头进行分组,为此我想得到当前JTable的DefaultTableModel。但当我尝试检索表模型时,如下所示: DefaultTableModel dm=(DefaultTableModel) tblTet.getModel(); 它显示以下异常: org.jdesktop.swingbinding.JTableBinding$BindingTableModel不能为空 转换为javax.swing.table.DefaultTableModel 因为我使用的是JTabl
DefaultTableModel dm=(DefaultTableModel) tblTet.getModel();
它显示以下异常:
org.jdesktop.swingbinding.JTableBinding$BindingTableModel不能为空
转换为javax.swing.table.DefaultTableModel
因为我使用的是JTableBeansBinding
是否有人知道如何解决此问题(用于检索DefaultTableModel)?根据,该类不扩展DefaultTableModel。相反,它实现了TableModel接口。这意味着您不能强制转换为DefaultTableModel,只能转换为TableModel:
TableModel dm=(TableModel) tblTet.getModel();
根据,该类不扩展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。您必须按照以下方式创建表格:
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。正常情况下,是的。但是OP正在使用(更好的)BeansBinding,并且无法控制内部分配的TableModel的类型正常情况下,是的。但是OP使用(更好的)BeansBinding,并且无法控制内部分配的TableModel的类型