gpt4 book ai didi

java - Array List .remove 函数不会完全删除元素,在 JTable 中留下空白空间

转载 作者:行者123 更新时间:2023-11-30 01:49:55 27 4
gpt4 key购买 nike

我正在 JTable 中显示数组列表。我有一个非常简单的删除方法:

@Override
public void DeleteContact(int id) {
Database c = GetSingleContact(id);
contactsList.remove(c);

然后将其保存到文件中。

一切正常,但是当我删除一个元素时,它会在 JTable 中留下用 0 填充的空白空间,我无法摆脱它,大小计算方法仍然将其计为元素,并且其他元素不会重新编号(技术上是 arraylist.remove (x) 应该自动执行)。

最佳答案

(technically arraylist.remove(x) should do it automatically).

不,不应该。

JTable 使用 TableModel 来保存数据。对数据的任何更改都需要在 TableModel 上完成。然后 TableModel 将通知表重新绘制自身。

如果 ArrayList 用作 TableModel 的数据存储,则在 deleteContact() 方法中,您需要调用:

 fireTableRowsDeleted( ...);

自定义 TableModel 的方法。

参见:Row Table Model有关如何为自定义对象创建自定义 TableModel 的分步示例。

关于java - Array List .remove 函数不会完全删除元素,在 JTable 中留下空白空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56449932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com