Java 为什么油漆不起作用?
我有一张饼图。我需要填充所有部分相同的颜色。在jfreechart指南中,我找到了setBaseSectionPaint方法,但它不起作用。我在cycle中使用了方法setSectionPaint,但它不是正确的多余程序代码。为什么油漆不起作用Java 为什么油漆不起作用?,java,jfreechart,Java,Jfreechart,我有一张饼图。我需要填充所有部分相同的颜色。在jfreechart指南中,我找到了setBaseSectionPaint方法,但它不起作用。我在cycle中使用了方法setSectionPaint,但它不是正确的多余程序代码。为什么油漆不起作用 private JFreeChart createPieChart(PieDataset piedataset){ JFreeChart jfreechart = ChartFactory.createPieChart("Select the
private JFreeChart createPieChart(PieDataset piedataset){
JFreeChart jfreechart = ChartFactory.createPieChart("Select the desired dictionary:", piedataset,true, true, false);
PiePlot pieplot = (PiePlot) jfreechart.getPlot();
for (int i=0;i<piedataset.getItemCount();i++){ //excess program code
pieplot.setSectionPaint(piedataset.getKey(i),new Color(54, 95, 196));
}
pieplot.setBaseSectionPaint(new Color(54, 95, 196)); //doesn't work
return jfreechart;
}
drawItem方法调用lookupSectionPaint,这解释了使用的算法:
如果getSectionPaint为非空,则返回;
如果getSectionPaintint为非null,则返回它;
如果getSectionPaintint为null,但autoPopulate为true,则尝试从绘图供应商Plot.getDrawingSupplier获取新的绘图;
如果所有其他操作都失败,则返回getBaseSectionPaint。
相反,请尝试这种方法,在省略对setSectionPaint的调用后,使用org.jfree.chart.demo.PieChartDemo1演示:
不幸的是,这不是我的情况。非常感谢!这就是我需要的。非常感谢你!
//plot.setSectionPaint(…);
plot.setAutoPopulateSectionPaint(false);
plot.setBaseSectionPaint(Color.blue);