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

nan*_*nan 2 javafx-2 javafx-8

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

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

jew*_*sea 5

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

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

节点的绘制顺序由节点在子节点的父节点中的位置确定ObservableList.node.toFront()将节点移动到父节点子列表的末尾,以便它将是为该父节点渲染的最后一个节点.

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

对于3D工作改变z顺序

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

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

如果你想将节点拖出它的父节点并转移到另一个父节点,那么你可以使场景的根成为一个堆栈,从它的初始父节点中删除节点,将它放在场景堆栈的顶部,将它拖到它的新的父级,并在完成拖动后,从场景堆栈中删除该节点并将其放入其新父级子列表中的适当位置.