JavaFX - 在 ScrollPane 中获取 child 的场景坐标

JavaFX - get scene coordinates of child in ScrollPane

我正在尝试从 ScrollPane 中的 child 计算场景坐标。我们用这个方法在我们项目的其他几个节点上做了这个

this.boundsInLocalProperty().addListener( ( observable, oldValue, newValue ) ->
{
     final Bounds boundsOnScene = this.localToScene( newValue );
     ..
} );

这真的很简单,但是即使特定节点当前不在视图范围内,我如何计算 ScrollPane 中 children 的坐标?我们的 FXML 结构如下所示

<ScrollPane>
   <VBox>
      <Pane/>
      <Pane/>
      <Pane/>
   </VBox>
</ScrollPane>

我已经在互联网上搜索了一段时间,但我不知道应该从哪里开始。也许有人可以指导我正确的方向?


编辑:感谢 James_D 的 我弄清楚了遗漏了什么。在 ScrollPane 中, boundsInLocalProperty 侦听器不会在滚动期间被调用,所以我不得不添加

this.localToSceneTransformProperty().addListener( ( observable, oldValue, newValue ) ->
{
     final Bounds boundsOnScene = this.localToScene( this.getBoundsInLocal() );
     ...
} );

考虑滚动行为。

感谢 James_D 我弄清楚了问题所在。

用户滚动时boundsInLocal不会改变。我还需要收听 localToSceneTransformProperty 以重新计算场景边界。