更改TableModel结构

时间:2013-02-13 23:35:37

标签: java swing jtable tablemodel defaulttablemodel

所以场景是我有一个带有许多JComboBox的JTable作为单元格。在选择JComboBox的元素时,需要对表模型的结构进行更改。我还在下面有一个'输出表',它监听JComboBox的选择并相应地重新验证,因此,我需要保持查询表的模型相同,以便它可以重用监听器。如何更改表模型的结构?

DefaultTableModel QueryTableModel = new DefaultTableModel(dropDownUserSelection, resultsListHeadings );     
queryTable.setModel(QueryTableModel);

JComboBox box = new JComboBox(boxModel);      
queryTable.getColumnModel().getColumn(i).setCellEditor(new DefaultCellEditor(box));

如果我问其他地方已经问过的问题,我很抱歉,但是我已经找到了一个找不到我要找的东西。

由于

1 个答案:

答案 0 :(得分:2)

TableModel有责任通知父表(或任何人听)模型的更改。

可用的常规事件包括更改数据,更新单元格,插入/删除行以及更改结构。

“结构已更改”告诉父表表格模型的结构(列数和/或列名称和/或类型已更改),它应该完全更新。

您可以通过多种方式实现这一目标。您可以让现有的表模型相应地自行更改并触发“结构已更改”事件,或者您可以根据需要构建新的表模型并将其应用于JTable