JavaFx查找具有特定ID的源父节点?

时间:2013-08-20 16:32:13

标签: javafx

是否有通过方法查找父节点(层次结构中较高)的方法? 可以使用元素id或类。

除此之外的其他选择吗?

source.getParent().getParent().getParent().getParent().getParent().getParent(); 

2 个答案:

答案 0 :(得分:10)

您可以通过Scene对象中的ID查找任何节点。

例如:

Scene scene = source.getScene();
Node nodeToFind = scene.lookup("#nodeToFindId");

ID是CSS选择器(id)或FX ID。必须在没有“#”字符的节点上进行设置。当调用方法'lookup'时,'#'字符必须在ID之前,如上所述。

答案 1 :(得分:1)

嗯,我知道你想要避免这种情况,但仍然没有那么糟糕,并且做了工作:

 Node node = youNode;
 while (node != null){
    node = node.getParent();
 }
 Node parentNode = node;

否则,如果您有权访问场景对象:

 Node parentNode = scene.getRoot();