在JavaFX中搜索TableView列表



如何在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,所以你可以做所有的

例子链接

最新更新