Если вам нужно реализовать «Удалить все выделенные», вы можете рассмотреть следующее расширение TableModel, которое сохранит некоторые перерисовки (что может улучшить пользовательский опыт):
import javax.swing.table.DefaultTableModel;
public class RemoveCheckedRowsTableModel extends DefaultTableModel {
public void removeCheckedRows(int removeCheckBoxColumn) {
int beginRow = 0;
int endRow = 0;
RangeSearch: while (beginRow < dataVector.size()) {
while (getValueAt(beginRow, removeCheckBoxColumn).equals(Boolean.FALSE)) {
beginRow++;
endRow++;
if (beginRow >= dataVector.size()) {
break RangeSearch;
}
}
while ((endRow + 1) < dataVector.size()
&& getValueAt((endRow + 1), removeCheckBoxColumn).equals(Boolean.TRUE)) {
endRow++;
}
for (int i = beginRow; i <= endRow; i++) {
dataVector.removeElementAt(beginRow);
}
fireTableRowsDeleted(beginRow, endRow);
endRow = ++beginRow;
}
}
}