8

有没有办法通过方法找到父节点(层次结构高)?可以使用元素 id 或类。

像这样的东西有什么替代品吗?

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

2 回答 2

14

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

例如:

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

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

于 2013-08-20T18:25:12.507 回答
3

好吧,我知道您想避免这种情况,但它仍然没有那么糟糕并且可以完成工作:

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

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

 Node parentNode = scene.getRoot();
于 2013-08-21T08:34:01.797 回答