gpt4 book ai didi

java - 如何通过名称而不是值获取 TreeView 分支?

转载 作者:行者123 更新时间:2023-12-01 11:15:07 24 4
gpt4 key购买 nike

有什么方法可以按名称获取 TreeView 分支吗?例如,如果我有一个像这样的 TreeView 菜单:

TreeItem<String> root, branch;

root = new TreeItem<>();
root.setExpanded(true);

branch = makeBranch("Chicken", root);

makeBranch("Hen", branch);

这是makeBranch()方法:

public TreeItem<String> makeBranch(String s, TreeItem<String> parent){

TreeItem<String> item = new TreeItem<>(s);
item.setExpanded(true);

parent.getChildren().add(item);
return item;
}

现在如果我想获得一个分支,我可以这样做:

branch.getChildren().get(a_number); // get using index

但是我是否可以通过名称而不是值来获取分支?所以类似:

branch.getChildren().get("the name of leaf or branch");

最佳答案

TreeItem.getChildren() 返回 ObservableList<TreeItem<T>> ,可以使用 List 的方法找到您正在寻找的 child ,例如使用 Stream 过滤内容:

final String value = "the name of leaf or branch";
Optional<TreeItem<String>> nodeOptional = branch.getChildren().stream()
.filter(
(child)-> child.getValue().equals(value)
)
.findFirst();

if (nodeOptional.isPresent()) {
TreeItem<String> item = nodeOptional.get();
// do something with item
} else {
// no child with specified value was found
}

请注意,您仅搜索 branch直接子级。那样。如果你想找到 branch 的任意后代,你必须做 tree search .

关于java - 如何通过名称而不是值获取 TreeView 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com