在C#中,我找到了一个非常好的方法,可以让你获取指定控件的所有子节点以及它们的所有子孙节点。
我正在寻找一个类似的JavaFX方法。
我发现Parent
类是我想要使用的类,因为它是所有带有子节点的Node类派生的类。
这是我目前的代码(我在Google上搜索“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是父节点(或从父节点扩展)?我这样做对吗?它似乎不起作用...它只获取来自根(父)节点的所有节点,而不是其中具有子节点的节点。我觉得这可能有一个答案,但我可能是在问错误的问题...我该怎么做呢?