我在java fx中有一个tableview,它显示不同类型的数据,如字符串和整数。我想有一个数据过滤器,这样它就可以自动在table View中显示数据。我怎样才能做到这一点呢?目前我正在使用一个函数,但它不起作用。注意:“pers”是我正在使用的类的一个对象
void SearchUser(){
FilteredList<Issue> filteredData=new FilteredList<>(Ilist,b->true);
filterField.textProperty().addListener((observable, oldValue, newValue) -> {
filteredData.setPredicate(pers->{
if(newValue==null||newValue.isEmpty()){
return true;
}
String lowerCaseFilter=newValue.toLowerCase();
if(pers.getCreator().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(pers.getIssueTitle().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(String.valueOf(pers.getIssueNo()).indexOf(lowerCaseFilter)!=-1){
return true;
} else if(pers.getStatus().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(pers.getAssignee().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(pers.getTime().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(String.valueOf(pers.getPriority()).indexOf(lowerCaseFilter)!=-1){
return true;
}
else if(pers.getTag().toLowerCase().indexOf(lowerCaseFilter)!=-1){
return true;
}
else{
return false;
}
});
});
SortedList<Issue> sortedData=new SortedList<>(filteredData);
sortedData.comparatorProperty().bind(IssueTable.comparatorProperty());
IssueTable.setItems(sortedData);
}
好的,谢谢伙计们,因为我发现了问题
问题不是函数本身,而是我在将数据放入TableView之前运行了这个方法,因为我没有添加任何异常处理事件,所以我的代码抛出了NullPoInterError。
谢谢大家的帮助
我需要在javafx tableview中实现一个拥有庞大数据(大约10万)的过滤器, 我试过这个教程。它可以工作,但与swing排序和过滤相比,过滤速度非常慢。 谁能帮我提速吗。 现在正在发生的事情是,当我键入textproperty change fire up和filterdata时,但速度很慢,我需要一些东西来显示筛选结果,并在swing中快速键入。 提前谢谢。 p、 我也看过这个。
下面的代码被修改为不包括我的数据库中的任何数据。 然后将其传递到initialize方法中,在该方法中进行表的实际填充。 顺便说一下,Users类如下所示: 该程序按预期工作,我可以看到与图像和VBox的详细信息的表格。 现在我想添加一个TextField来过滤表,过滤参数是标签中的文本。 我明白了,我需要将ObservableList放入FilteredList中,然后放入SortedList中
我在论坛上发现了这样的sollution,正如我所说的,它只检测添加/删除对象
我在javaFX开发应用程序。我想在桌面上显示json的反应。我不知道怎么做 我的档案如下: 项目。fxml 项目控制器 我在中得到json响应,我想在表视图中显示它。 我不知道如何将json绑定到表视图。 我可以将json转换为数组。 但是,tableview的方法要求使用观测列表。 因此,任何建议和例子都将受到高度重视。
我在许多地方看到了关于如何使用代码获取表头的示例 像这里:如何防止TableView从做TableColsta重新排序在javaFX 8? 但是这个代码为我返回。 如何到达然后?