0

我已经下载了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;
              }

    }
}
4

1 回答 1

3

您可以选择项目

treeView.getSelectionModel().select(item);

如果您仍然需要滚动(我认为选择它可能会自动滚动到它),请执行

treeView.scrollTo(treeView.getRow(item));

几点注意事项:

  1. 我不明白for循环。你为什么这么做

    TreeItem<FamilyMember> item = root.getChildren().get(i);
    

    为什么要创建索引itreeItem您已经在循环语法中定义的变量有什么问题?这不一定与 完全相同item吗?

  2. 您需要阅读如何比较 Java 中的字符串?

于 2017-05-31T19:57:35.797 回答