在Javafx 2中,如何总是在顶部绘制一些东西?

时间:2013-05-27 18:25:20

标签: javafx-2 javafx-8

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

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

1 个答案:

答案 0 :(得分:5)

大部分时间只使用Node.toFront()

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

节点的绘制顺序由节点在子节点的父节点ObservableList中的位置确定。 node.toFront()会将节点移动到父节点子节点的末尾,这样它就是为父节点渲染的最后一个节点。

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

对于3D工作改变z顺序

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

对于跨父母拖动,请使用堆栈

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