2

我正在使用 javafx 2.2。我有一个随着鼠标移动而移动的圆形对象。但是,场景中有新的对象。我想将此对象始终放在其他对象之上。

使用 OPENGL,您只需在渲染循环的每一帧中最后绘制这个圆圈,但是使用 JavaFX,如何实现呢?

4

1 回答 1

5

大多数时候只是使用Node.toFront()

在开始拖动节点时调用node.toFront() 。

节点的绘制顺序由节点在节点的父节点中的位置决定ObservableListnode.toFront()会将节点移动到父节点的子列表的末尾,这样它将是为该父节点渲染的最后一个东西。

请注意,对于某些布局类型(例如HBox),父子列表中节点的顺序也决定了节点在列表中的布局位置以及节点的渲染顺序。

对于 3D 工作更改 z 顺序

如果您正在做 3D 工作,那么调整节点的 z 坐标也可以将节点置于其他节点之上。

对于跨父拖动使用堆栈

如果要将节点从其父级拖到另一个父级,则可以将场景的根设为堆栈,从其初始父级中删除节点,将其放在场景堆栈的顶部,将其拖到它的新父级,并在拖动完成后,从场景堆栈中删除节点并将其放置在其新父级的子列表中的适当位置。

于 2013-05-27T18:41:49.330 回答