在Javafx中检查该treeItem上的Condition之后,如何在treeView中选择treeItem

时间:2017-05-31 19:50:54

标签: select javafx treeview fxml programmatically

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

    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用

选择项目
treeView.getSelectionModel().select(item);

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

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

几点说明:

  1. 我不理解for循环。你为什么这样做

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

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

  2. 您需要阅读How do I compare strings in Java?