javafx scene.lookup

javafx scene.lookup,javafx,scenegraph,Javafx,Scenegraph,我正在将现有的swing应用程序转换为JavaFX。我认为这段代码将返回一个名为“#paneRightBottom”的节点,但它返回null。使用netbeans调试器,我能够深入“topNode”并找到“#PanerRightBottom”节点六层,因此它就在那里。我已经阅读了在线文档,并认为我应该得到一个节点。有人知道我哪里出了错吗 Node topNode = FXMLLoader.load(AFI.class.getResource("afimain.fxml"));

我正在将现有的swing应用程序转换为JavaFX。我认为这段代码将返回一个名为“#paneRightBottom”的节点,但它返回null。使用netbeans调试器,我能够深入“topNode”并找到“#PanerRightBottom”节点六层,因此它就在那里。我已经阅读了在线文档,并认为我应该得到一个节点。有人知道我哪里出了错吗

        Node topNode = FXMLLoader.load(AFI.class.getResource("afimain.fxml"));
        System.out.println(topNode.getId());
        Node node = topNode.lookup("#paneRightBottom");

检查您尝试查找的节点是否具有
id=“PanerRightBottom”
而不是
fx:id=“PanerRightBottom”
。如果它已经发布了你的fxml文件,那么也可以提供更多的细节。

谢谢@Uluk,我已经标记了xml以说明不同的id格式。我仍然在看,但我相信这与拆分窗格有关,不考虑窗格是儿童,而是物品。这使得编写遍历方法变得不那么优雅,不得不使用instanceof检查分割窗格似乎有点错误。我不认为分裂窗格是一个问题,所以没有t@BobSmith. 如果你还没看,看看。我认为答案也适用于您的用例。