void () { final int[] selectedRows = myTable.getSelectedRows(); if (selectedRows.length == 0) return; boolean included = false; for (int selectedRow : selectedRows) { included |= myModel.getItems().get(selectedRow).isIncluded(); } int first = Integer.MAX_VALUE; int last = -1; for (int selectedRow : selectedRows) { first = Math.min(first, selectedRow); last = Math.max(last, selectedRow); myModel.getItems().get(selectedRow).setIncluded(!included); } myModel.fireTableRowsUpdated(first, last+1); myDispatcher.getMulticaster().selectionChanged(); }