如何在TableWie中找到记录(例如通过ID)并选择创建的行并将其放在Java 8 (JavaFX)的屏幕中间。
您可以使用如下命令搜索元素:
int searchId = ... ;
table.getItems().stream().filter(item -> item.getId()==searchId).findAny()
然后使用通常的方法来选择项目(如果有的话)。TableView
有一个scrollTo(...)
方法,它将滚动,使项目可见:
table.getItems().stream()
.filter(item -> item.getId() == searchId)
.findAny()
.ifPresent(item -> {
table.getSelectionModel().select(item);
table.scrollTo(item);
});
如果你在表中有非常多的项目,你可能需要实现一个更有效的搜索算法(例如按id排序,并使用二进制搜索,如@Bartek的答案)
如果你想搜索tableView,最好这样做:
- 排序列表
- 二进制查找或简单循环检查每一行或与所查找的值一致
列表是ArrayList,所以你可以做所有的
例子链接