确保该节点位于组中所有其他节点之上

时间:2019-06-06 16:14:47

标签: javafx

我目前正在尝试制作一组​​弧,并在其上方添加文字。这似乎是可行的,但仅适用于一半情况。另一半结束于弧节点下方且不可见。

我尝试使用node.tofront(),toback()等,但是它仍然没有改变任何内容。

class pieslice extends Group{
pieslice(double centerx,double centery,double segpart,double totalseg){
            Text value= new Text(String.format("%.2f",worth));
            segment = totalseg;
            Arc innerArc=new Arc();
            Arc outerArc=new Arc();
            outerArc.setType(ArcType.ROUND);
            innerArc.setType(ArcType.ROUND);
            value.setFill(Color.WHITE);
            innerArc.setStrokeWidth(1);
            innerArc.setRadiusX(150.0f);
            innerArc.setRadiusY(150.0f);
            outerArc.setRadiusX(innerArc.getRadiusX()+10);
            outerArc.setRadiusY(innerArc.getRadiusY()+10);
            outerArc.setFill(Color.WHITE);
            innerArc.setStartAngle((360/segment)*segpart);
            outerArc.setStartAngle((360/segment)*segpart);
            innerArc.setCenterX(centerx);
            innerArc.setCenterY(centery);
            outerArc.setCenterX(centerx);
            outerArc.setCenterX(centery);
            innerArc.setLength(360/segment);
            outerArc.setLength(360/segment);
            innerArc.setStrokeWidth(1);
            innerArc.setStroke(Color.BLACK);
            innerArc.setFill(Color.color(Math.random(),Math.random(),Math.random()));
            value.setX(150);
            value.setFill(Color.BLACK);
            value.getTransforms().add(new Rotate((360/segment)*segpart+((360/segment)/2),0,0));
            System.out.println((360/segment)*segpart+((360/segment)/2));
            this.getChildren().add(outerArc);
            this.getChildren().get(0).setViewOrder(2);
            this.getChildren().add(innerArc);
this.getChildren().add(value);}

我希望,由于我先添加了两个弧线(仅出于美学效果,添加了内部和外部),然后添加了文本,所以文本将在形状上方进行渲染,但事实并非如此。有什么想法吗?

0 个答案:

没有答案