2017-05-31 44 views
-1

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

    } 
} 
+0

如果答案的工作,你应该将其标记为正确 –

+0

请不要改变你的问题到答案。如果您希望为未来的读者添加更多详细信息,请添加回复帖子。 – halfer

回答

0

您可以

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?

相关问题