JavaFXでノードの絶対位置を取得する最良の方法は何ですか?
ペイン(Hbox、Stackpane、またはその他のペイン)にノードがあり、それ自体に親があると想像してください。
そのノードの絶対位置を取得して、別のペインで使用したいと思います。
それはあなたが「絶対」で何を意味するかによって少し異なります。ノードの座標系、親の座標系、親の座標系などがあり、最終的にはScene
の座標系と画面の座標系(これは、物理ディスプレイデバイス)。
おそらく、Scene
を基準とした座標が必要です。その場合は、
Bounds boundsInScene = node.localToScene(node.getBoundsInLocal());
または画面に対する座標:
Bounds boundsInScreen = node.localToScreen(node.getBoundsInLocal());
どちらの場合も、結果の Bounds
オブジェクトにはgetMinX()
、getMinY()
、getMaxX()
、getMaxY()
、getWidth()
およびgetHeight()
メソッド。
メインステージの「ウィンドウ」の名前とノードの「メニュー」の名前を想定すると、これを行うことができます:-)
double X=Main.window.getX()+menu.getLayoutX();
double Y=Main.window.getY()+menu.getLayoutY();