Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get real position of a node in JavaFX

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 parent itself.

I want to get the absolute position of that node and use it in another pane.

like image 690
maryam Avatar asked Jun 30 '15 21:06

maryam


2 Answers

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.

like image 143
James_D Avatar answered Sep 20 '22 12:09

James_D


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();
like image 39
Ragib Avatar answered Sep 19 '22 12:09

Ragib