如何在TreeView中检查TreeItem上的条件后,在Javafx中选择一个TreeItem
问题描述:
我已经下载了familyTree项目,并且它无法搜索特定的家庭成员!如何在TreeView中检查TreeItem上的条件后,在Javafx中选择一个TreeItem
我已经为它添加了一个搜索按钮,并且在处理程序方法部分中,我需要搜索具有指定的社交ID的成员的代码,并将其选中(将其滚动至视线并将其变为蓝色(选择))。但我不知道如何以编程方式选择一个treeItem,并使其可见和选择?
我的代码:
@FXML
private void btnSearch_click(ActionEvent event){
for(TreeItem<FamilyMember> treeItem:root.getChildren()){
if(treeItem.getValue().getNationality().toString()=="22"){
// treeView.setSelectionModel(item);
treeView.getSelectionModel().select(treeItem);
//it still doesnt select the item with nationality=="22"
break;
}
}
}
答
您可以
treeView.getSelectionModel().select(item);
选择项目,如果你仍然需要滚动(我认为选择它可能会自动滚动到它),做
treeView.scrollTo(treeView.getRow(item));
一些注意事项:
-
我不明白
for
循环。你为什么要做TreeItem<FamilyMember> item = root.getChildren().get(i);
为什么你要创建索引
i
?您在循环语法中已定义的treeItem
变量有什么问题?这不一定与item
完全一样吗?
如果答案的工作,你应该将其标记为正确 –
请不要改变你的问题到答案。如果您希望为未来的读者添加更多详细信息,请添加回复帖子。 – halfer