【发布时间】:2014-10-30 01:08:42
【问题描述】:
我正在尝试添加定制器类以删除条形图中条形之间的空间,但在将 customizer class 属性添加到 package barchartcustomizer 后,我在 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) base.JRBaseChart.visit(JRBaseChart.java:639) 在 net.sf.jasperreports.engine.JRAbstractObjectFactory.getVisitResult(JRAbstractObjectFactory.java:89) 在 net.sf.jasperreports.engine.fill.JRFillElementGroup.(JRFillElementGroup.java:83 ) 在 net.sf.jasperreports.engine.fill.JRFillElementContainer.(JRFillElementContainer.java:90) 在 net.sf.jasperreports.engine.fill.JRFillBand.(JRFillBand.java:92) 在 net.sf.jasperreports.engine。 fill.JRFillObjectFactory.getBand(JRFillObjectFactory.java:505) 在 net.sf.jasperreports.engine.fill.JRFillSection.(JRFillSection.java:74) 在 net.sf.jasperreports.engine.fill.JRFillObjectFactory.getSection(JRFillObjectFactory.java :481) 在 net.sf.jasperreports.engine.fill.JRFillGroup.(JRFillGroup.java:81) 在 net.sf.jasperrep orts.engine.fill.JRFillObjectFactory.getGroup(JRFillObjectFactory.java:457) 在 net.sf.jasperreports.engine.fill.JRFillVariable.(JRFillVariable.java:84) 在 net.sf.jasperreports.engine.fill.JRFillObjectFactory.getVariable (JRFillObjectFactory.java:437) 在 net.sf.jasperreports.engine.fill.JRFillDataset.addVariable(JRFillDataset.java:335) 在 net.sf.jasperreports.engine.fill.JRFillDataset.setVariables(JRFillDataset.java:325) 在net.sf.jasperreports.engine.fill.JRFillDataset.(JRFillDataset.java:279) 在 net.sf.jasperreports.engine.fill.JRFillObjectFactory.getDataset(JRFillObjectFactory.java:1338) 在 net.sf.jasperreports.engine.fill .JRBaseFiller.(JRBaseFiller.java:397) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:88) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:103)在 net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:61) 在 net.sf.jasperreports.engine.fill .JRFiller.createFiller(JRFiller.java:153) 在 net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55) 在 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446 ) 在 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745) 在 com.jaspersoft.ireport.designer.compiler。 IReportCompiler.run(IReportCompiler.java:891) 在 org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) 在 org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) : java.lang.ClassNotFoundException: 包 com.xyz.bar.chart.customizer 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.C lassLoader.loadClass(ClassLoader.java:423) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在 org.netbeans.ProxyClassLoader.loadClass (ProxyClassLoader.java:252) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在 java.lang.Class.forName0(Native 方法) 在 java.lang.Class.forName(Class.java:264) 在net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:175) 在 net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115) 在 net.sf.jasperreports.engine。 fill.JRFillChart.(JRFillChart.java:296) ... 29 更多
我该如何解决这个错误,任何建议都会对我很有帮助。
【问题讨论】:
-
你添加类到类路径了吗?
-
是的,我已经在 iReport 的类路径中添加了。
-
您使用的是什么版本的 iReport?您可以发布所有步骤来重现您的问题吗?
-
@Sharad 显示带有定义定制器类的 jrxml 的一部分:
-
@sanBez 因为我已经更新了我的问题以在 iReport jrxml 中调用自定义程序类,所以我正在编写“package barchartcustomizer”。
标签: java jasper-reports ireport