JavaFX TableView筛选器不保留选择

时间:2019-07-18 09:52:29

标签: java javafx tableview

我在JavaFX表格视图上实现了一个简单的过滤器,以允许文本字段显示与其输入(herehere)相匹配的项目。尽管过滤器按预期工作,但我希望在显示所有项目时再次显示在搜索中选择的项目。如果在过滤时选择了一项,它将仅“记住”该项目,而不会“记住”其他项目。这是我的问题的一个示例:enter image description here

我试图在使用搜索栏时保留选定项目的列表,然后在搜索完成时将这些项目设置为选定,但是我的实现失败。这是完成搜索时保留选择的唯一方法吗?我是否缺少设置或更简单的方法?

这是我用于过滤的代码:

        FilteredList<TableItem> filteredData = new FilteredList<>(rTable.getItems(), p -> true);
    textFieldSearch.textProperty().addListener((observable, oldValue, newValue) -> {
        filteredData.setPredicate(myObject -> {
            // If filter is empty/null display all data
            if (newValue == null || newValue.isEmpty()) {
                return true;
            }
            //Otherwise try to match all fields
            String lowerCaseFilter = newValue.toLowerCase();
            boolean b = myObject.hasField(lowerCaseFilter);
            return b;
        });
    });
    rTable.setItems(filteredData);

谢谢您的帮助!

0 个答案:

没有答案