web-dev-qa-db-ja.com

JavaFXでノードの実際の位置を取得する

JavaFXでノードの絶対位置を取得する最良の方法は何ですか?

ペイン(Hbox、Stackpane、またはその他のペイン)にノードがあり、それ自体に親があると想像してください。

そのノードの絶対位置を取得して、別のペインで使用したいと思います。

12
maryam

それはあなたが「絶対」で何を意味するかによって少し異なります。ノードの座標系、親の座標系、親の座標系などがあり、最終的にはSceneの座標系と画面の座標系(これは、物理ディスプレイデバイス)。

おそらく、Sceneを基準とした座標が必要です。その場合は、

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

または画面に対する座標:

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

どちらの場合も、結果の Bounds オブジェクトにはgetMinX()getMinY()getMaxX()getMaxY()getWidth()およびgetHeight()メソッド。

35
James_D

メインステージの「ウィンドウ」の名前とノードの「メニュー」の名前を想定すると、これを行うことができます:-)

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