添加自定义程序类以删除条形图中条形图之间的空格



我正试图添加自定义程序类以删除条形图中条形图之间的空格,但在将自定义程序类属性添加到包barchartcustomer后,我在iReport中遇到了一些错误。我还在iReport的类路径中添加了barchartcustomizer.jar。

我的代码:-

package barchartcustomizer;
import net.sf.jasperreports.engine.JRAbstractChartCustomizer;
import net.sf.jasperreports.engine.JRChart;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BarRenderer;

public class BarChartCustomizer extends JRAbstractChartCustomizer {
public void customize(JFreeChart chart, JRChart jasperChart) {
CategoryPlot categoryPlot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();
//Spaces between bars
renderer.setItemMargin(0.03);       
}
}

但是当我点击预览得到这个错误:-

填充打印时出错。。。无法创建图表自定义程序实例。正在设置文件解析程序。。。已添加文件解析程序。。。net.sf.jasperreports.engine.JRRuntimeException:无法创建图表自定义程序实例。在net.sf.jasperreports.engine.fill.JRFillChart.(JRFillChart.java:299)在net.sf.jasperrereports.engine.fill.JRFillObjectFactory.visitChart位于net.sf.jasperreports.engine.fill.JRFillElementGroup.(JRFillElement Group.java:83),位于net.sf.jasperrereports.engine.fill.JRFillElementContainer.(JRfillElement Container.java:90),位于net.sf.jasperreports.engine.fill.JRFillSection。(JRFillSection.java:74),位于net.sf.jasperreports.cengine.full.JRFill ObjectFactory.getSection(JRFill对象工厂.java:481),位于net.sf.jasperreports.engine.fill.JRFillVariable。(JRFillVariable.ja:84),位于net.sf.jasperreports.cengine.full.JRFill ObjectFactory.getVariable(JRFill对象工厂.ja:437),位于net.sf.jasperreports.engine.fill.JRFillDataset.(JRFillDataset.java:279),位于net.sf.jasperreports.cengine.full.JRFilleObjectFactory.getDataset(JRFilleobjectFactory.java:1338),位于net.sf.jasperreports.engine.fill.JRVerticalFiller。(JRVerticalFiller.java:103),位于net.sf.jasperreports.cengine.full.JRVertical Fillernet.sf.jasperreport.engine.JasperFillManager.fillorg.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572java.net.URLClassLoader.findClass(URLClassLoader.java:354)在java.lang.ClassLoader.loadClass(ClassLoader.java:423)在sun.mic.Launcher$AppClassLoader.loadClass(Launcher.java:308)在org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:252),位于java.lang.ClassLoader.loadClass(ClassLoader.java:356),位于net.sf.jaspereports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:115),位于net.sf.jasperreports.engine.fill.JRFillChart.(JRFillChart.java:296)。。。再增加29个

我该如何解决这个错误?任何建议都会对我很有帮助。

请参考以下网址:

https://mdahlman.wordpress.com/tag/pie-chart/

您可以在上面链接的"示例报告和图表自定义程序"部分下载现成的自定义程序jar。

下载jar,在ireport类路径中注册jar,并在ireport的chart customizer属性中添加包名。

我已经测试过了,工作得很好。

干杯,

Srikanth Kattam

最新更新