Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-在滚动窗格中获取子对象的场景坐标_Java_Javafx_Scrollpane - Fatal编程技术网

JavaFX-在滚动窗格中获取子对象的场景坐标

JavaFX-在滚动窗格中获取子对象的场景坐标,java,javafx,scrollpane,Java,Javafx,Scrollpane,我正试图从滚动窗格中的子对象计算场景坐标。我们使用此方法在项目中的其他几个节点上执行此操作 this.boundsInLocalProperty().addListener( ( observable, oldValue, newValue ) -> { final Bounds boundsOnScene = this.localToScene( newValue ); .. } ); 这确实很简单,但即使特定节点当前超出视图边界,如何计算滚动窗格中子节点的坐标呢?

我正试图从
滚动窗格
中的子对象计算场景坐标。我们使用此方法在项目中的其他几个节点上执行此操作

this.boundsInLocalProperty().addListener( ( observable, oldValue, newValue ) ->
{
     final Bounds boundsOnScene = this.localToScene( newValue );
     ..
} );
这确实很简单,但即使特定节点当前超出视图边界,如何计算
滚动窗格中子节点的坐标呢?我们的FXML结构如下所示


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


编辑:多亏了詹姆斯的帮助,我找到了遗漏的内容。在
滚动窗格中
滚动期间将不会调用
boundsInLocalProperty
侦听器,因此我必须添加

this.localToSceneTransformProperty().addListener( ( observable, oldValue, newValue ) ->
{
     final Bounds boundsOnScene = this.localToScene( this.getBoundsInLocal() );
     ...
} );
将滚动行为考虑在内

多亏了你,我才知道出了什么问题

当用户滚动时,
boundsInLocal
不会更改。我还需要听一下
localToSceneTransformProperty
来重新计算场景边界。

多亏了我找出了问题所在


当用户滚动时,
boundsInLocal
不会更改。我还需要侦听
LocalToScenetTransformProperty
以重新计算场景边界。

您的计算看起来正确,但当用户滚动时,
boundsInLocal
不会更改,因此不会调用侦听器,您也不会重新计算场景边界。请尝试将侦听器添加到
LocalToScenetTransformProperty
Omg,谢谢。昨天我花了几乎一整天的时间来思考如何绑定到scroll事件以重新计算边界。我想我得自己减去偏移量。我没想到事情会这么简单。有时你看不到树的森林。偶然发现这个老问题,也许你可以添加你的评论作为答案,这样我就可以接受了?你的计算看起来不错,但是当用户滚动时,
boundsInLocal
不会改变,所以监听器不会被调用,你也不会重新计算场景边界。请尝试将侦听器添加到
LocalToScenetTransformProperty
Omg,谢谢。昨天我花了几乎一整天的时间来思考如何绑定到scroll事件以重新计算边界。我想我得自己减去偏移量。我没想到事情会这么简单。有时你看不见森林,也看不见树木。偶然发现这个老问题,也许你可以添加你的评论作为答案,这样我就可以接受了?