JavaFX 2.2在坐标处获取节点(可视树命中测试)

如何在鼠标/任意坐标下获得控件列表(或第一个)? 我知道WPF有VisualTreeHelper.HitTest,它有一个回调函数,可用于过滤掉一点上的所有控件。 JavaFX有类似的东西吗? (或者不同,我只关心给定点的第一个元素)我已经看到很多信息来获取节点的坐标,但没有关于如何通过坐标获取节点的信息。

您可以使用node.impl_pickNode(x,y)

来自impl_pickNode方法的文档(从源复制)。

 /** * Finds a top-most child node that contains the given coordinates. * * Returns the picked node, null if no such node was found. * * @deprecated This is an internal API that is not intended for use * and will be removed in the next version. **/ public final Node impl_pickNode(double parentX, double parentY) 

请注意注释中的弃用警告,使用风险自负。

更新

JavaFX问题跟踪器中存在现有function请求: FX应提供Parent.pick()例程 。 此function请求适用于公众拣货API,将来不会弃用。 请求的function描述为:“例程可以返回单个节点或按z坐标排序的鼠标下方的所有节点的列表”。 该function尚未安排实施,直到“Van Ness”发布版本(即最初的JDK8版本发布后发布)(即该function最早要到2013年圣诞节才可用)。