如何在 JavaFX 中获取父级中的所有节点?
在C#中,我发现了一个非常可爱的方法,它允许您从指定的控件中获取所有后代及其所有后代。
我正在寻找一种类似的JavaFX方法。
我看到该类是我想要使用的,因为它是所有带有子级的Node类的派生。Parent
这就是我到目前为止所拥有的(我还没有在谷歌上找到任何像“JavaFX从场景中获取所有节点”这样的搜索):
public static ArrayList<Node> GetAllNodes(Parent root){
ArrayList<Node> Descendents = new ArrayList<>();
root.getChildrenUnmodifiable().stream().forEach(N -> {
if (!Descendents.contains(N)) Descendents.add(N);
if (N.getClass() == Parent.class) Descendents.addAll(
GetAllNodes((Parent)N)
);
});
}
那么我如何判断N是父级(还是从父级扩展而来)呢?我做得对吗?它似乎不起作用...它从根(父)节点获取所有节点,但不从包含子节点的节点中抓取。我觉得这可能是一个答案,但我只是在问这个问题......错。我该怎么做?