How do you remove selected rows from a JTable?

前端 未结 18 1345
情话喂你
情话喂你 2020-12-30 03:26

I\'ve tried this:

public void removeSelectedFromTable(JTable from)
{
    int[] rows = from.getSelectedRows();
    TableModel tm= from.getModel();

    while(         


        
18条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-30 04:01

    That solution works with header sorting and updates automatically the table (i.e.: it is not required to rebuid it).

    The "Collecions.sort in reverse order" ennables to avoid IndexOutOfBondException.

    private void deleteSelectedRows() {
            int[] selectedRows = table.getSelectedRows();
            table.clearSelection();
    
            // get model rows
            List selectedModelRows = new LinkedList();
            for (int i =`enter code here` 0; i < selectedRows.length; i++) {
                selectedModelRows.add(table.convertRowIndexToModel(selectedRows[i]));
            }
    
            Collections.sort(selectedModelRows, Collections.reverseOrder());
    
            for (int selectedModelRow : selectedModelRows) {
                tableModel.removeRow(selectedModelRow);
                tableModel.fireTableRowsDeleted(selectedModelRow, selectedModelRow);
            }
    }
    

提交回复
热议问题