Question

Comment puis-je configurer ordre Z pour VBox dans JavaFX?

Était-ce utile?

La solution

Z-ordre dans JavaFX est en fait de l'ordre dans le SceneGraph, par exemple. dans la séquence contenu de la scène (puis dans le contenu des groupes, des récipients, etc.).

Tous les noeuds ont également des fonctions toFront () et Toback () pour aider à changer cet ordre. Pour un contrôle plus précis, vous devez supprimer des nœuds d'un endroit et l'insérer plus ou moins dans la séquence.

Autres conseils

Avec les fonctions que vous pouvez en effet toFront () et Toback () influencent l'ordre z, mais sachez que cela influence aussi la mise en page. Le HBox et VBox, par exemple, utilisent également la séquence des enfants à faire la mise en page et déplacer quelque chose à l'avant se déplacera aussi à la fin de la [HV] Box. Cela pourrait ne pas être ce que vous recherchez.

Je cherchais un moyen de faire une animation avec le nœud d'animation au-dessus de tous les autres, sans déconner la mise en page. Il semble y avoir aucun moyen de le faire parce que l'ordre z et l'ordre de mise en page sont tous deux pris de l'enfant ordre.

Alors que les autres réponses sont toujours correctes, JavaFX 9 a ajouté un moyen de manipuler l'ordre Z sans modifier la liste des enfants. Cela se fait avec la propriété Node.viewOrder .

Javadoc:

Définit le rendu et la préparation de commandes de cette Node dans son parent.

Cette propriété permet de modifier le rendu et la préparation de commandes d'un nœud dans son parent sans réorganisant la liste des children du parent. Par exemple, cela peut être utilisé comme un moyen de mettre en œuvre le tri de transparence plus efficace. Pour ce faire, une application peut affecter la valeur de viewOrder de chaque noeud à la distance calculée entre ce noeud et le spectateur.

Le parent traversera son children dans l'ordre décroissant de viewOrder. Cela signifie qu'un enfant avec un viewOrder inférieur sera en face d'un enfant avec un viewOrder supérieur. Si deux enfants ont la même viewOrder, le parent les parcourir dans l'ordre où ils apparaissent dans la liste des children du parent.

Cependant, viewOrder ne modifie pas la mise en page et mise au point de l'ordre traversal de ce Node dans son parent. Un parent traverse toujours sa liste de children pour faire la mise en page ou lors de mise au point traversal.

Valeur par défaut:

0.0

depuis:

9

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top