it-swarm.com.de

liefert die reale Position eines Knotens in JavaFX

Was ist der beste Weg, um die absolute Position eines Knotens in JavaFX zu erhalten? Angenommen, wir haben einen Knoten in einem Bereich (Hbox, Stackpane, ... oder einem anderen Bereich), der übergeordnete Elemente haben kann möchten eine absolute Position dieses Knotens erhalten und ihn in einem anderen Bereich verwenden?

10
maryam

Es kommt darauf an, was Sie mit "absolut" meinen. Es gibt ein Koordinatensystem für den Knoten, ein Koordinatensystem für das übergeordnete Element, ein Koordinatensystem für das übergeordnete Element usw. und schließlich ein Koordinatensystem für die Variable Scene und ein Koordinatensystem für den Bildschirm (möglicherweise eine Sammlung von physischen Anzeigegeräten). 

Wahrscheinlich möchten Sie entweder die Koordinaten relativ zur Scene. In diesem Fall könnten Sie dies tun

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

oder die Koordinaten relativ zum Bildschirm:

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

In beiden Fällen verfügt das resultierende Bounds object über die Methoden getMinX(), getMinY(), getMaxX(), getMaxY(), getWidth() und getHeight().

30
James_D

Angenommen, der Name des Hauptfensters "Bühne" und der Name des Knotens "Menü" können Sie Folgendes tun:

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