当在ArrayList上按下按钮时,应该选择并删除表中的几个项目。但是只有一项被删除。
for (int i = 0; i < Table.getRowCount(); i++) {
if (Table.isRowSelected(i)) {
TableData.remove(i);
}
}
Table.setModel(new DemoTableModel(TableData));
答案 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。它显示了如何实现“删除行”方法。