Get real position of a node in JavaFX

后端 未结 3 1172
感情败类
感情败类 2020-12-06 17:06

What is the best way to get the absolute position of a node in JavaFX?

Imagine we have a node in a Pane (Hbox, Stackpane, or any other pane) and that may have a pare

相关标签:
3条回答
  • 2020-12-06 17:51

    It depends a little what you mean by "absolute". There is a coordinate system for the node, a coordinate system for its parent, one for its parent, and so on, and eventually a coordinate system for the Scene and one for the screen (which is potentially a collection of physical display devices).

    You probably either want the coordinates relative to the Scene, in which case you could do

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

    or the coordinates relative to the screen:

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

    In either case the resulting Bounds object has getMinX(), getMinY(), getMaxX(), getMaxY(), getWidth() and getHeight() methods.

    0 讨论(0)
  • 2020-12-06 17:57

    Assuming the name of the main Stage "window",and the name of the node "menu" you can do this :-)

    double X=Main.window.getX()+menu.getLayoutX();
    double Y=Main.window.getY()+menu.getLayoutY();
    
    0 讨论(0)
  • 2020-12-06 18:03

    if you want to translate local coordinates to scenne coords you can use localToScene method .

     Point2D point2D = node.localToScene(0,0);
    

    for example if you want to know the center of a pane but in scene coordinates

    Point2D point2D = pane.localToScene(pane.getWidth()/2,pane.getHeight()/2);
    
    0 讨论(0)
提交回复
热议问题