JavaFX: Comment relier deux Nœuds en une Ligne?
Je veux me connecter deux Node
s avec un Line
(à partir du centre de la première à la centre de la deuxième).
Premières pensées:
- Il est supposé que les deux nœuds exister quelque part dans le graphe de scène
- La
Line
agit en tant que décorateur et ne doit pas être cliquable - Si le
Node
Bounds
changement, laLine
doit être mis à jour
Il semble que je vais avoir besoin de quelques composés de propriété liaisons, y compris le bon de coordonnées de l'espace des transformations.
Comment atteindre cet objectif? Quelqu'un peut-il indiquer une direction?
OriginalL'auteur Jens Piegsa | 2013-11-03
Vous devez vous connecter pour publier un commentaire.
Le code de cette réponse est basée sur la réponse à la question: CubicCurve JavaFX
L'exemple ci-dessous:
Le code ci-dessus est basée sur un cercle, de sorte qu'il est facile de suivre la trace du cercle centerX et centerY propriétés.
Pour une forme arbitraire nœud, vous pouvez suivre son centre propriétés à l'intérieur de son parent à l'aide du code ci-dessous:
Appliquant le Centre code de l'Ancrage de l'échantillon ci-dessus, vous obtenez le code suivant:
Si vous voulais suivre les nœuds arbitraires dans une scène, et pas seulement des nœuds frère, vous voudrez peut-être regarder dans le nœud.getLayoutBounds et nœud.getLocalToSceneTransform fonctions.
Bindings.createDoubleBinding(Callable<Double>, Observable...)
. Le calcul est fait par leCallable
à l'aide deNode.localToScene(Bounds)
etNode.sceneToLocal(Bounds)
en fonction de la disposition limites.OriginalL'auteur jewelsea