List<Item> () { ListSelectionModel selectionModel = getSelectionModel(); int minSelectionIndex = selectionModel.getMinSelectionIndex(); int maxSelectionIndex = selectionModel.getMaxSelectionIndex(); if (minSelectionIndex == -1 || maxSelectionIndex == -1) { return Collections.emptyList(); } List<Item> result = new SmartList<>(); ListTableModel<Item> model = getListTableModel(); for (int i = minSelectionIndex; i <= maxSelectionIndex; i++) { if (selectionModel.isSelectedIndex(i)) { int modelIndex = convertRowIndexToModel(i); if (modelIndex >= 0 && modelIndex < model.getRowCount()) { result.add(model.getRowValue(modelIndex)); } } } return result; }