JTable 行重复:解决根本原因
在这种情况下,JTable 行中重复值的问题源于不正确的实现自定义中的 fireTableDataChanged() 方法CollectionDataModel.
fireTableDataChanged() 的正确实现
fireTableDataChanged() 方法应该通知 JTable 底层数据已更改,从而触发表显示的更新。在提供的代码片段中,该方法似乎没有实现。
要正确实现它,请将以下代码添加到 populate() 方法的末尾:
fireTableStructureChanged();
说明
fireTableStructureChanged() 方法表示数据的结构,例如列数或行已更改。这会触发表正确重建其列和行。
示例代码
以下是实现了 fireTableStructureChanged() 方法的更正代码:
public void populate(Collection c) { data.clear(); for(Item i : c.getItems()) { ArrayList<String> row = new ArrayList<String>(); for(Property p : i.getProperties().values()) { row.add(p.toString()); } data.add(row); } fireTableStructureChanged(); }
通过正确实现 fireTableStructureChanged() 方法,当有新数据出现时,表格将被正确更新填充,防止出现重复行。
以上是为什么我的 JTable 行重复,如何使用'fireTableStructureChanged()”修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!