Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX如何将一个形状重叠到另一个形状上_Java_Javafx - Fatal编程技术网

JavaFX如何将一个形状重叠到另一个形状上

JavaFX如何将一个形状重叠到另一个形状上,java,javafx,Java,Javafx,我试图在圆的顶部创建一条线 我尝试过的事情: 我将圆圈添加到StackPane中,然后将StackPane和线条添加到我发送给场景构造器的组中,得到了一些不希望的结果,例如StackPane没有在舞台上完全展开 在圆后添加线会自动将其置于圆上方,但我需要对其进行更多控制 e、 例如,我有10个形状,我想把它们全部声明出来,然后决定什么是什么,我不想担心按顺序添加它们 JavaFX使用了,按照从第一个节点到最后一个节点的顺序绘制节点,这样最后一个节点将绘制在第一个节点上 这是在一个对每,而不是一个

我试图在圆的顶部创建一条线

我尝试过的事情:

我将圆圈添加到StackPane中,然后将StackPane和线条添加到我发送给场景构造器的组中,得到了一些不希望的结果,例如StackPane没有在舞台上完全展开

在圆后添加线会自动将其置于圆上方,但我需要对其进行更多控制

e、 例如,我有10个形状,我想把它们全部声明出来,然后决定什么是什么,我不想担心按顺序添加它们

JavaFX使用了,按照从第一个节点到最后一个节点的顺序绘制节点,这样最后一个节点将绘制在第一个节点上

这是在一个对每,而不是一个。因此,在您将逻辑控制权交给JavaFX图形系统之前,不会绘制项目。这意味着您可以将项目添加到场景图中,然后在绘制项目之前,根据需要在场景图中重新排序或移动项目

JavaFX中的3D绘制也可以使用,但这个答案只涉及具有相同z坐标值的元素的2D绘制,没有z缓冲

如何设置节点的绘制顺序

通过将节点添加到父级的子级列表中,可以将节点放置在父级或父级中。节点将按照您将其添加到子列表的顺序绘制

如果您希望使用CSS,窗格是很好的,否则组通常会这样做。此外,窗格具有可调整大小的范围,而组则没有。出于这些原因,我通常更喜欢使用窗格而不是组

若要更改绘制子对象的顺序,可以在“子对象”列表中的相应位置移动节点

例如,以下代码将更改父窗格子列表中第一个和第五个项目的绘制顺序:

Collections.swap(parentPane.getChildren(), 0, 4)
此外,还提供了将节点移动到父节点的子列表的后面或前面的简单方法

关于版面窗格使用的建议

不要使用布局窗格(如StackPane)来容纳要明确定位的节点。托管布局窗格(如StackPane)旨在根据布局窗格的内部算法为您自动处理节点布局。例如,默认情况下,添加到堆栈中的每个节点都将集中在StPcPANE的中间。

相关的

JavaFX如何绘制

JavaFX使用了,按照从第一个节点到最后一个节点的顺序绘制节点,这样最后一个节点将绘制在第一个节点上

这是在一个对每,而不是一个。因此,在您将逻辑控制权交给JavaFX图形系统之前,不会绘制项目。这意味着您可以将项目添加到场景图中,然后在绘制项目之前,根据需要在场景图中重新排序或移动项目

JavaFX中的3D绘制也可以使用,但这个答案只涉及具有相同z坐标值的元素的2D绘制,没有z缓冲

如何设置节点的绘制顺序

通过将节点添加到父级的子级列表中,可以将节点放置在父级或父级中。节点将按照您将其添加到子列表的顺序绘制

如果您希望使用CSS,窗格是很好的,否则组通常会这样做。此外,窗格具有可调整大小的范围,而组则没有。出于这些原因,我通常更喜欢使用窗格而不是组

若要更改绘制子对象的顺序,可以在“子对象”列表中的相应位置移动节点

例如,以下代码将更改父窗格子列表中第一个和第五个项目的绘制顺序:

Collections.swap(parentPane.getChildren(), 0, 4)
此外,还提供了将节点移动到父节点的子列表的后面或前面的简单方法

关于版面窗格使用的建议

不要使用布局窗格(如StackPane)来容纳要明确定位的节点。托管布局窗格(如StackPane)旨在根据布局窗格的内部算法为您自动处理节点布局。例如,默认情况下,添加到堆栈中的每个节点都将集中在StPcPANE的中间。

相关的

看看这个。只需将节点添加到窗格或组并设置它们的位置就可以完成这项工作。如果希望所有节点居中并相互重叠,请将所有节点添加到StackPane。只需将节点添加到窗格或组并设置它们的位置就可以完成这项工作。如果希望所有节点居中并相互重叠,请将所有节点添加到堆栈窗格中。张贴a..按从头到尾的顺序绘制父节点的子节点,以便在第一个节点上绘制最后的节点。如果我没记错的话,从技术上讲,只有一个形状的未覆盖部分被涂上油漆,以节省p
油漆作业。首先计算脏区域,并在同一绘制周期内绘制所有形状,以区分绘制的形状。是的,JavaFX实现中内置了脏区域的性能优化,不过,它们只是优化,结果保持不变。按从第一个到最后一个的顺序绘制父节点的子节点,以便在第一个节点上绘制最后一个节点。如果我没记错的话,从技术上讲,为了节省喷漆操作,只对形状的未覆盖部分进行喷漆。首先计算脏区域,并在同一绘制周期内绘制所有形状,以区分绘制的形状。是的,JavaFX实现中内置了脏区域的性能优化,但它们只是优化,结果保持不变。