JavaFx是否正在查找具有特定id的源父节点?

JavaFx是否正在查找具有特定id的源父节点?,javafx,Javafx,有没有办法通过方法找到父节点(层次结构较高)? 可以使用元素id或类 除了这样的事情还有别的选择吗 source.getParent().getParent().getParent().getParent().getParent().getParent(); 可以根据场景对象中的节点ID查找任何节点 例如: Scene scene = source.getScene(); Node nodeToFind = scene.lookup("#nodeToFindId"); 该ID是CSS选择器

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

除了这样的事情还有别的选择吗

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

可以根据场景对象中的节点ID查找任何节点

例如:

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

该ID是CSS选择器(ID)或FX ID。它必须在节点上设置,且不带“#”字符。调用“lookup”方法时,“#”字符必须位于ID之前,如上所述

我知道你想避免这一点,但它仍然没有那么糟糕,并且起到了作用:

 Node node = youNode;
 while (node != null){
    node = node.getParent();
 }
 Node parentNode = node;
否则,如果您有权访问场景对象:

 Node parentNode = scene.getRoot();

陛下我得到了java.lang.NullPointerException。可能问题是我的图表是这样开始的:gantChartStage=new RmsGantChart();甘特图阶段。初始模态(模态。无);RmsGantChart扩展了Stage甘特图Stage.showAndWait();当您尝试查找“nodeToFindID”时,源节点是否显示在场景中?如果(Node.getId().equals(myd)在while循环中返回节点,则返回ok。