Как я могу получить фактическую позицию узла в сцене . Абсолютная позиция, независимо от каких-либо контейнеров / преобразований.
Например, я хочу перевести определенный узел a
, чтобы он временно перекрывал другой узел b
. Поэтому я хочу установить для его свойства translateX
значение b.globalX-a.globalX
.
В документации сказано:
Определяет координату X
перевод, который добавляется к
преобразованные координаты этого узла
с целью макета. Контейнеры
или группы, выполняющие макет будут установлены
эта переменная относительно
layoutBounds.minX для того, чтобы позиционировать
узел в желаемой разметке
место.
Например, если ребенок должен иметь
окончательное местоположение finalX:
child.layoutX = finalX - child.layoutBounds.minX;
То есть конечные координаты любого узла должны быть
finalX = node.layoutX + node.layoutBounds.minX
Однако работает следующий код:
var rect;
Stage {
title: "Application title"
width: 250
height:250
scene: Scene {
content: [
Stack{content:[rect = Rectangle { width:10 height:10}] layoutX:10}
]
}
}
println("finalX = {rect.layoutX+rect.layoutBounds.minX}");
дает мне finalX = 0.0
вместо finalX = 10.0
, как, по-видимому, указано в документации.
Есть ли четкий способ получить абсолютно окончательные координаты позиционирования в JavaFX?