在JavaFX中搜索TableView列表

时间:2016-11-03 10:15:20

标签: select search javafx tableview

如何在TableWie中查找记录(例如通过ID)并选择已创建的Row并将其放在Java 8(JavaFX)中的屏幕中间。

2 个答案:

答案 0 :(得分:4)

您可以使用以下内容搜索元素:

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的答案中的二进制搜索)。

答案 1 :(得分:1)

如果要搜索tableView,最好这样做:

  • 对列表进行排序
  • 二元搜索或简单循环检查每一行或与所寻求的值一致

列表为ArrayList,因此您可以完成所有操作。

示例LINK