JFreeChartRenderer 类型已弃用,我应该使用什么方法?

The type JFreeChartRenderer is deprecated, what method should I use?

我是 JFreeChart 的新手,我尝试在 jasperreport 中使用它,我看到了 question 关于如何在 jasperreport 中插入 JFreechart 对象的文章,其中一个响应有效,但不推荐使用该方法:

JFreeChartRenderer jrc = new JFreeChartRenderer( SpiderChart.createChart2());

使用什么新方法?

JFreeChartRender的直接替换是DrawChartRendererImpl

new DrawChartRendererImpl(org.jfree.chart.JFreeChart chart, ChartHyperlinkProvider chartHyperlinkProvider);

另一种方法是提供一个 java.awt.image.BufferedImage,您可以从 JFreechart

中检索它
BufferedImage bufferedImage = chart.createBufferedImage(width, height);

请注意,通常您将其直接包含在您的 jrxml 中(从 IDE 您可以将图表组件拖到报告中)

饼图示例jrxml

<pieChart>
    <chart>
        <reportElement x="89" y="100" width="200" height="100" uuid="b96a1b13-4bf0-4983-8168-97b80abdae04"/>
        <chartTitle/>
        <chartSubtitle/>
        <chartLegend/>
    </chart>
    <pieDataset>
        <keyExpression><![CDATA[$F{fieldKey}]]></keyExpression>
        <valueExpression><![CDATA[$F{fieldValue}]]></valueExpression>
    </pieDataset>
    <piePlot>
        <plot/>
        <itemLabel/>
    </piePlot>
</pieChart>

这些是您可以使用的Standard chart types, 如果您使用的是 JasperSoft Studio(以及 iReport 中的类似软件),请参阅 Creating Charts and Datasets with Jaspersoft Studio