【发布时间】:2014-01-02 10:16:06
【问题描述】:
我有一个存在于用户对象之外的 TreeView。 TreeView 表示用户的层次结构:
- 大师1
- 超级1
- 超级2
- 用户1
- 用户2
- 超级3
- 用户3
- 超级4
- Master2
- ...
当 TreeView 初始化时,每个 TreeItem 都会被折叠。但是,在加载 FXML 时,可能会从另一个 FXML 文件传递一个 TreeItem 对象。 eg: User3 已通过:
selectedUserTreeItem = (TreeItem<User>) currentNavigation.getPassthroughObject(); //this is the User3 TreeItem
我尝试使用递归函数从selecterUserTreeItem展开所有父节点
if (selectedUserTreeItem != null) {
expandTreeView(selectedUserTreeItem);
}
tvUsers.setRoot(rootItem);
这是我目前所拥有的:
private void expandTreeView(TreeItem<User> selectedItem) {
if (selectedItem != null) {
System.out.println(selectedItem);
if (selectedItem.isLeaf() == false) {
selectedItem.setExpanded(true);
}
TreeItem<User> parent = selectedItem.getParent();
expandTreeView(parent);
} else {
System.out.println("null");
}
}
我认为这与该函数是一个 void 函数这一事实有关,我想它应该返回一个 TreeItem 对象,但由于某种原因我没有成功。
有人能指出我正确的方向吗?
【问题讨论】:
标签: recursion treeview javafx-2 javafx-8