JTable 行中的重复值:解决这个谜
为了回应对填充 JTable 的明显重复值的担忧,进行了详细的调查表明底层数据模型确实保存了正确的数据。要了解根本原因,让我们深入研究提供的代码。
在自定义 CollectionDataModel 中调用 populate() 方法时,数据预计将呈现在表中。然而,当数据在填充之前被清除时,就会出现问题。这是通过 data.clear().
行完成的。为了进一步说明这一点,让我们考虑一个示例场景。假设数据模型最初包含两行,每行具有三列。调用 populate() 后,该数据将被清除,使表为空。现在,当迭代新集合时,只有集合中最后一项的数据才会反映在表中。出现这种情况是因为数据模型中的数据字段只保留了最后一行数据。
因此,JTable 中的每一行都显示相同的数据,给人一种重复值的错觉。要解决此问题,可以修改 populate() 方法以跳过数据清除步骤,从而保留现有数据并将新数据附加到表的末尾。
或者,如果必须清除数据在填充数据之前,可以考虑创建一个新的 ArrayList 并将其分配给数据字段,而不是清除现有的数据字段。这样,就可以维护正确的数据,而不会导致 JTable 中出现重复值问题。
以上是当基础数据正确时,为什么我的 JTable 显示重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!