2014-09-04 79 views
3

在我的應用程序中,我需要能夠從TreeView中刪除每個項目。Java FX刪除TreeView根項目

我有我的TreeView注入我控制器

private @FXML TreeView<Component> treeView; 

我刪除代碼:

private void deleteSelectedNode() { 
    TreeItem<Component> node = treeView.getSelectionModel().getSelectedItem(); 

    if (node == null) { 
     return; 
    } 

    TreeItem<Component> parent = node.getParent(); 

    if (parent != null) { 
     parent.getChildren().remove(node); 
    } else { 
     //how to delete root item without parent?   
    } 
} 

實際的問題是:如何刪除根元素?我找不到任何API的方法,我不想創建新的實例,我更喜歡依賴注入的解決方案。 我想我可以隱藏這個項目,直到下一個節點被創建,但它似乎是小黑客。

謝謝您花在這個主題上的時間!

回答

5
treeView.setRoot(null); 

應該工作。

+0

哦,我認爲它最終會拋出一些異常,但我需要在選擇更改處理程序中使用nullcheck -_-當然可以,非常感謝! – 2014-09-04 18:18:02