我如何为z订单设置 VBox 在Javafx?

有帮助吗?

解决方案

Javafx中的Z级实际上是场景图中的顺序,例如。在场景的内容序列中(然后在组,容器等的内容中)。

所有节点都具有tofront()和toback()函数,以帮助更改此顺序。对于更精细的控制,您必须从一个地方删除节点,并在序列中插入更高或更低的节点。

其他提示

使用tofront()和toback()函数,您确实可以影响Z阶,但请注意,这也会影响布局。例如,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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top