Вопрос
Как мне установить Z-order для VBox
в Javafx?
Решение
Z-порядок в Javafx на самом деле является порядком в сцене, например. В последовательности содержания сцены (тогда в содержимое групп, контейнеров и т. Д.).
Все узлы также имеют функции tofront () и toback (), чтобы помочь изменить этот порядок. Для более тонкого контроля вы должны удалять узлы из одного места и вставить его выше или ниже в последовательности.
Другие советы
С функциями tofront () и toback () вы действительно можете повлиять на Z-order, но имейте в виду, что это также влияет на макет. Например, Hbox и Vbox также используют последовательность детей, чтобы сделать макет, и перемещение чего -либо на переднюю часть также переместит ее в конце коробки [HV]. Это может быть не то, что вы ищете.
Я искал способ сделать анимацию с анимированным узлом на вершине всех остальных, не испортив макет. Кажется, нет никакого способа сделать это, потому что Z-порядка и порядка макета взяты из ордера ребенка.
Хотя другие ответы все еще верны, Javafx 9 добавил способ манипулировать Z-порядком без изменения списка детей. Это делается с Node.viewOrder
имущество.
Javadoc:
Определяет порядок рендеринга и сбора этого
Node
внутри своего родителя.Это свойство используется для изменения порядок рендеринга и сбора узла внутри своего родителя без повторного заказа родителя
children
список. Например, это можно использовать в качестве более эффективного способа реализации сортировки прозрачности. Для этого приложение может назначитьviewOrder
значение каждого узла до вычисленного расстояния между этим узлом и зрителем.Родитель пройдет
children
в уменьшенииviewOrder
заказ. Это означает, что ребенок с более низкимviewOrder
будет перед ребенком с более высокимviewOrder
. Анкет Если у двух детей одинаковоviewOrder
, родитель пройдет их в том порядке, в котором они появляются в родительскомchildren
список.Однако,
viewOrder
не изменяет макет и порядок отслеживания фокусировки этогоNode
внутри своего родителя. Родитель всегда пересекает свойchildren
Перечислите по порядку при выполнении макета или сфокусировки.Значение по умолчанию:
0.0
С:
9