Чтение множественного выбора из TableView в JavaFX 2.0

Я пытаюсь получить выбор из TableView в JavaFX 2.0. Я сохранил 5 человек (5 строк) в TableView. Код для получения модели выбора:

TableView<Person> tableView =
myStage.getTableView();

ObservableList<Person> selection = 
tableView.getSelectionModel().getSelectedItems();

System.out.println(selection.size());

Теперь, когда я выбираю несколько строк, а затем выполняю метод, включающий приведенный выше код, следующее печатает выделение * 2, а иногда выделение * 3. Например: я выбираю все 5 строк, и он печатает размер 10, а иногда и 15!

Что я здесь делаю неправильно?


person Wouter Konecny    schedule 06.12.2011    source источник


Ответы (1)


Существует ошибка, когда TableView возвращает повторяющиеся элементы для выбора, сделанного с нажатой клавишей Shift. В качестве обходного пути до исправления вы можете попробовать отфильтровать повторяющиеся элементы:

Set<Person> selection = new HashSet<Person>(tableView.getSelectionModel().getSelectedItems());
person Sergey Grinev    schedule 06.12.2011
comment
Спасибо! Он отлично работает! Что ж, я ожидал столкнуться с некоторыми ошибками в JavaFX 2.0, и поехали. - person Wouter Konecny; 07.12.2011