it-swarm.com.ru

получить реальную позицию узла в javaFX

Каков наилучший способ получить абсолютную позицию узла в JavaFX? Предположим, у нас есть узел на панели (Hbox, Stackpane, ... или на любой другой панели), который может иметь самого родителя . I Хотите получить абсолютную позицию этого узла и использовать его в другой панели?

10
maryam

Это немного зависит от того, что вы подразумеваете под «абсолютом». Существует система координат для узла, система координат для его родителя, одна для его родителя и т.д., И, в конечном итоге, система координат для Scene и одна для экрана (которая потенциально может быть набором физических устройств отображения). 

Вы, вероятно, хотите либо координаты относительно Scene, в этом случае вы можете сделать

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

или координаты относительно экрана:

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

В любом случае результирующий объект Bounds имеет методы getMinX(), getMinY(), getMaxX(), getMaxY(), getWidth() и getHeight().

30
James_D

Предполагая название основного этапа «окна» и имя узла «меню», вы можете сделать это :-)

double X=Main.window.getX()+menu.getLayoutX();
double Y=Main.window.getY()+menu.getLayoutY();
0
Ragib