2017-05-31 42 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?

相關問題