您可以使用以下内容搜索元素:
int searchId = ... ;
table.getItems().stream().filter(item -> item.getId()==searchId).findAny()
Run Code Online (Sandbox Code Playgroud)
然后只需使用通常的方法来选择项目(如果有的话)。该TableView有一个scrollTo(...)会滚动,该项目是可见的方法:
table.getItems().stream()
.filter(item -> item.getId() == searchId)
.findAny()
.ifPresent(item -> {
table.getSelectionModel().select(item);
table.scrollTo(item);
});
Run Code Online (Sandbox Code Playgroud)
如果表中有大量项目,则可能需要实现更有效的搜索算法(例如,按 id 排序并使用二分搜索,如@Bartek 的回答)。