Jak uzyskać rzeczywistą pozycję węzła w scenie. Bezwzględna pozycja, niezależnie od jakichkolwiek kontenerów/transformacji.Uzyskiwanie globalnej współrzędności węzła w JavaFX
Na przykład chcę przetłumaczyć określony węzeł a
tak, aby tymczasowo nakładał się na inny węzeł b
. Dlatego chcę ustawić jego właściwość translateX
na b.globalX-a.globalX
.
Dokumentacja mówi:
Określa współrzędną X tłumaczeniu który jest dodawany do przekształconych współrzędnych tego węzła dla celów układu. Kontenery lub Grupy wykonujące układ ustawią zmienną w stosunku do layoutBounds.minX w celu umieszczenia węzła w pożądanej lokalizacji lokalizacji.
Na przykład, jeśli dziecko powinno mieć ostateczną lokalizację finalX:
child.layoutX = finalX - child.layoutBounds.minX;
Oznacza to, że ostateczne współrzędne dowolnego węzła powinny być
finalX = node.layoutX + node.layoutBounds.minX
jednak uruchomiony następujący kod :
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}");
daje mi finalX = 0.0
zamiast finalX = 10.0
, tak jak dokumentuje pozornie stan.
Czy istnieje jasna metoda uzyskania absolutnie ostatecznych współrzędnych pozycjonowania w JavaFX?
prostu zastanawiasz się, jaki format jest kod powyżej? To nie jest Java, może JSON? –
To JavaFX, nowy język programowania firmy Sun/Oracle. –
Format, wiem, że to JavaFX, ale nie jest to kod Java. –