删除选定的JTable元素

时间:2018-07-07 14:56:49

标签: java swing jtable

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

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

1 个答案:

答案 0 :(得分:2)

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

可以使用ArrayList将数据加载到DefaultTableModel中,但是将TableModel添加到表中之后,对数据的所有更改都应通过DefaultTableModel完成。

因此,您可以使用:

model.removeRow(...)

DefaultTableModel的方法。

请参见:How to delete multiple rows from JTable , database at a time,该示例为从DefaultTableModel删除所有选定行的工作示例。

如果使用的是自定义TableModel,则自定义模型应实现removeRow(...)方法。有关使用ArrayList创建自定义TableModel来保存数据的分步示例,请参见Row Table Model。它显示了如何实现“删除行”方法。