我在JavaFX表格视图上实现了一个简单的过滤器,以允许文本字段显示与其输入(here和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);
谢谢您的帮助!