首页 >Java >java教程 >为什么我的 JTable 行重复,如何使用'fireTableStructureChanged()”修复它?

为什么我的 JTable 行重复,如何使用'fireTableStructureChanged()”修复它?

Susan Sarandon
Susan Sarandon原创
2024-12-22 10:05:46769浏览

Why Are My JTable Rows Duplicating, and How Can I Fix It Using `fireTableStructureChanged()`?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn