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

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

Susan Sarandon
发布: 2024-12-22 10:05:46
原创
809 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板