1

我正在尝试从 JavaFX 2.0 中的 TableView 中获取选择。我在 TableView 中存储了 5 个人(5 行)。获取选择模型的代码是:

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

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

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

现在,当我选择多行,然后执行包含上述代码的方法时,以下会打印选择 * 2,有时会打印选择 * 3。例如:我选择所有 5 行,它会打印出 10 有时 15 的大小!

我在这里做错了什么?

4

1 回答 1

3

TableView 存在一个错误,它返回重复的项目以供通过 shift-click 进行选择。作为修复之前的解决方法,您可以尝试通过以下方式过滤重复的项目:

Set<Person> selection = new HashSet<Person>(tableView.getSelectionModel().getSelectedItems());
于 2011-12-06T15:21:44.387 回答