我在离线环境中工作,因此无法复制整个代码库,我将尽力描述尽可能多的内容。
JavaFX没有提供甜甜圈图表,因此我通过简单地扩展PieChart并添加一个圆形到中心来创建自定义甜甜圈图表。伪代码如下:
这给我提供了我想要的甜甜圈图表,但现在我希望有一个双层甜甜圈图表,也就是说,另外一层进一步分解了图表。我再次做了同样的事情,但这一次除了添加“innerCircle”之外,我还添加了另一个饼图。现在它看起来像这样:
只有外部的"DonutChart"图表和内圆一起显示,但内部图表不可见。我还观察到内部图表的宽度属性为0,并尝试绑定该属性、设置内部图表的最大/最小/首选宽度/高度,但都没有成功。
有人能够创建一个自定义的甜甜圈图表,显示2个层吗?
JavaFX没有提供甜甜圈图表,因此我通过简单地扩展PieChart并添加一个圆形到中心来创建自定义甜甜圈图表。伪代码如下:
public class DonutChart extends PieChart{
private final Circle innerCircle;
//Initialize PieChart
//Override "layoutChartChildren()" method to override chart label with value instead of name
//Calculate chart bounds by looping through each node to find the max/min X/Y bounds.
//Create a smaller circle and relocate it to the center of the PieChart
}
这给我提供了我想要的甜甜圈图表,但现在我希望有一个双层甜甜圈图表,也就是说,另外一层进一步分解了图表。我再次做了同样的事情,但这一次除了添加“innerCircle”之外,我还添加了另一个饼图。现在它看起来像这样:
public class DonutChart extends PieChart{
private final Circle innerCircle;
private PieChart innerChart;
/*
* Initialize PieChart
* Override "layoutChartChildren()" method to override chart label with value instead of name
* Calculate chart bounds by looping through each node to find the max/min X/Y bounds.
* Create and add innerChart and innerCircle
*/
private void addChartAndCircle(){
if (getData().size > 0){
Node pie = getData().get(0).getNode();
if (pie.getParent() instanceof Pane){
Pane parent = pie.getParent();
if (!parent.getChildren().contains(innerChart)){
parent.getChildren().add(innerChart);
}
if (!parent.getChildren().contains(innerCircle)){
parent.getChildren().add(innerCircle);
}
}
}
}
//Relocate to center
}
只有外部的"DonutChart"图表和内圆一起显示,但内部图表不可见。我还观察到内部图表的宽度属性为0,并尝试绑定该属性、设置内部图表的最大/最小/首选宽度/高度,但都没有成功。
有人能够创建一个自定义的甜甜圈图表,显示2个层吗?