我已经下载了familyTree项目,但它无法搜索特定的家庭成员!
我已经为它添加了一个搜索按钮,在处理程序方法部分,我需要搜索具有指定socialID的成员的代码,然后选择它(将其滚动到视线,并使其变为蓝色(已选中) ))。但我不知道如何以编程方式选择一个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;
}
}
}
答案 0 :(得分:2)
您可以使用
选择项目treeView.getSelectionModel().select(item);
如果您仍需要滚动(我认为选择它可能会自动滚动到它),请执行
treeView.scrollTo(treeView.getRow(item));
几点说明:
我不理解for
循环。你为什么这样做
TreeItem<FamilyMember> item = root.getChildren().get(i);
为什么要创建索引i
?您已在循环语法中定义的treeItem
变量有什么问题?这不一定与item
完全相同吗?