在 JavaFX 中搜索 TableView 列表

Nen*_*čić 2 search select javafx tableview

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

Jam*_*s_D 5

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

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 的回答)。