使用localToScene(x,y)获取节点的场景中的位置会返回错误的值

时间:2016-07-27 12:00:20

标签: java javafx

我想将弹出的窗格的位置绑定到调用它的Button的位置,我尝试通过调用button.localToScene(button.getLayoutX(),button.getLayoutY()来实现。但是,返回的Point2D变量中包含错误的X坐标。我在Gimp测量它,它应该在320但它返回我586。

localToScreen() btw相同的故事,在按钮已经显示之前我甚至没有586像素的屏幕区域,所以它不可能在那个坐标上。

1 个答案:

答案 0 :(得分:2)

如果您提供有用的代码,您可能希望获取按钮的节点位置与包含按钮的元素(如窗格或场景)相关。但是这样的地方,你得到包含你的按钮的窗格的位置,然后得到你的按钮位置,并找出差异。但我建议尝试这个:

Bounds boundsInScene = button.localToScene(button.getBoundsInLocal());

或者这相对于屏幕:

Bounds boundsInScreen = button.localToScreen(button.getBoundsInLocal());

然后使用方法:getMinX(),getMinY(),getMaxX(),getMaxY(),getWidth()或getHeight()来获取实际按钮的值。

希望这有帮助。