首页 > 解决方案 > 删除选定的 JTable 元素

问题描述

当按下 ArrayList 上的按钮时,应选择并删除表中的几个项目。但只有一项被删除。

for (int i = 0; i < Table.getRowCount(); i++) {
            if (Table.isRowSelected(i)) {
               TableData.remove(i);
            }
}
Table.setModel(new DemoTableModel(TableData));

标签: javaswingjtable

解决方案


您不应该从 ArrayList 中删除数据。

ArrayList 可用于将数据加载到表中,DefaultTableModel但在将 TableModel 添加到表后,对数据的所有更改都应通过DefaultTableModel.

因此,在您的情况下,您将使用:

model.removeRow(...)

DefaultTableModel 的方法。

有关从 DefaultTableModel 中删除所有选定行的工作示例,请参阅:如何一次从数据库 JTable 中删除多行。

如果您使用的是自定义 TableModel,那么自定义模型应该实现一个removeRow(...)方法。有关使用 ArrayList 创建自定义 TableModel 来保存数据的分步示例,请参阅行表模型。它展示了如何实现“删除行”方法。


推荐阅读