jfreechart setBackgroundpaint无效

时间:2016-05-13 08:36:08

标签: jfreechart

我正在尝试合并多个图表来创建单个图表。各个图表都有白色背景,但不管怎么说,尽管使用了setBackgroundpaint api,但我的合并图表最终会变成灰色背景。

public static String mergeXYGraphs(List<XYPlot> plots, String title, boolean legend, int width, int height) throws IOException
{
    if(plots != null && !plots.isEmpty())
    {
        XYPlot base = plots.get(0);
        for(int i = 1; i< plots.size(); i++)
        {
            base.setDataset(i, plots.get(i).getDataset());
            base.setRenderer(i, plots.get(i).getRenderer());
        }
        JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, base, legend);
        setDateAxis(base);
        chart.getXYPlot().setBackgroundPaint(Color.WHITE);
        return saveImageFile(chart, "merged", "charts", width, height);
    }
    return "";
}


private static void setDateAxis(XYPlot plot)
{
    DateAxis domainAxis = new DateAxis();
    domainAxis.setAutoTickUnitSelection(true);
    domainAxis.setDateFormatOverride(new SimpleDateFormat("dd/MM"));
    plot.setDomainAxis(domainAxis);
}

PS:base.setBackgroundPaint(Color.WHITE);不起作用

enter image description here

1 个答案:

答案 0 :(得分:1)

事实证明,我们必须在jfreechart上设置不同级别的颜色,以控制不同部分的颜色。

在上图中,面板的背景颜色为白色,但图表的背景颜色不是。所以,我不得不使用:

chart.setBackgroundPaint(Color.WHITE);