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
以重新计算场景边界。
我正在尝试从 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
以重新计算场景边界。