为什么Jasper图表主题抛出java.lang.IndexOutOfBoundsException:索引:7,大小:7?
我正在用Jasper Report测试图表主题。为什么我使用为什么Jasper图表主题抛出java.lang.IndexOutOfBoundsException:索引:7,大小:7?,java,jasper-reports,Java,Jasper Reports,我正在用Jasper Report测试图表主题。为什么我使用eye.candy.sixties主题时会得到IndexOutOfBoundsException?其他主题也可以(例如:爱琴海、默认等) BarChartTest.java public class BarChartTest { @SuppressWarnings("unchecked") public static void main(String[] args) { String templateFi
eye.candy.sixties
主题时会得到IndexOutOfBoundsException
?其他主题也可以(例如:爱琴海、默认等)
BarChartTest.java
public class BarChartTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
String templateFile = "resources/bar.jrxml";
DataBeanList dataBeanList = new DataBeanList();
ArrayList<DataBean> dataList = dataBeanList.getDataBeanList();
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(dataList);
Map parameters = new HashMap();
try {
JasperDesign design = JRXmlLoader.load(templateFile);
JasperReport report = JasperCompileManager.compileReport(design);
JasperPrint print = JasperFillManager.fillReport(report, parameters, beanColDataSource);
JasperExportManager.exportReportToPdfFile(print, "D:/temp/bar_chart.pdf");
} catch (JRException e) {
e.printStackTrace();
}
}
}
解放党
我发现了一点,为什么当我们使用
eye.candy.sixties
主题时,我们会得到IndexOutOfBoundsException
喜欢我的问题吗
jasperreports图表主题xxx.jar
中有以下变量和方法。主要问题是,EYE\u CANDY\u SIXTIES\u GRADIENT\u PAINTS
列表大小为7
在ChartThemesConstants.java中
@SuppressWarnings("serial")
public static final List<GradientPaint> EYE_CANDY_SIXTIES_GRADIENT_PAINTS = new ArrayList<GradientPaint>() {
{
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(0), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(0)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(1), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(1)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(2), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(2)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(3), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(3)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(4), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(4)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(5), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(5)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(6), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(6)).darker()));
}
};
....
@SuppressWarnings("serial")
public static final List<Color> EYE_CANDY_SIXTIES_COLORS = new ArrayList<Color>() {
{
add(new Color(250, 97, 18));
add(new Color(237, 38, 42));
add(new Color(0, 111, 60));
add(new Color(250, 223, 18));
add(new Color(47, 137, 187));
add(new Color(231, 133, 35));
add(new Color(229, 1, 140));
add(new Color(234, 171, 53));
add(Color.decode("#F5F5DC"));
add(Color.decode("#8B008B"));
add(Color.decode("#556B2F"));
add(Color.decode("#483D8B"));
add(Color.decode("#ADFF2F"));
add(Color.decode("#191970"));
add(Color.decode("#9457EB"));
add(Color.decode("#1A1110"));
add(Color.decode("#F984E5"));
add(Color.decode("#536878"));
add(Color.decode("#32127A"));
add(Color.decode("#80461B"));
}
};
@SuppressWarnings("serial")
public static final List<GradientPaint> EYE_CANDY_SIXTIES_GRADIENT_PAINTS = new ArrayList<GradientPaint>() {
{
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(0), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(0)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(1), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(1)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(2), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(2)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(3), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(3)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(4), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(4)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(5), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(5)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(6), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(6)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(7), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(7)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(8), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(8)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(9), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(9)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(10), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(10)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(11), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(11)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(12), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(12)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(13), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(13)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(14), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(14)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(15), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(15)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(16), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(16)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(17), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(17)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(18), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(18)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(19), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(19)).darker()));
}
};
...
jasperreports-chart-themes-4.0.2.jar
jasperreports-5.6.1.jar
jasperreports-applet-5.6.1.jar
jasperreports-fonts-5.6.1.jar
jasperreports-javaflow-5.6.1.jar
...other necessary jar files
@SuppressWarnings("serial")
public static final List<GradientPaint> EYE_CANDY_SIXTIES_GRADIENT_PAINTS = new ArrayList<GradientPaint>() {
{
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(0), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(0)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(1), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(1)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(2), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(2)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(3), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(3)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(4), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(4)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(5), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(5)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(6), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(6)).darker()));
}
};
protected JFreeChart createBarChart() throws JRException {
JFreeChart jfreeChart = super.createBarChart();
CategoryPlot categoryPlot = (CategoryPlot) jfreeChart.getPlot();
// categoryPlot.setOrientation(PlotOrientation.HORIZONTAL);
BarRenderer barRenderer = (BarRenderer) categoryPlot.getRenderer();
barRenderer.setItemMargin(0);
barRenderer.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.HORIZONTAL));
CategoryDataset categoryDataset = categoryPlot.getDataset();
if (categoryDataset != null) {
for (int i = 0; i < categoryDataset.getRowCount(); i++) {
barRenderer.setSeriesPaint(i, ChartThemesConstants.EYE_CANDY_SIXTIES_GRADIENT_PAINTS.get(i)); <-- Here is point
}
}
return jfreeChart;
}
....
@SuppressWarnings("serial")
public static final List<Color> EYE_CANDY_SIXTIES_COLORS = new ArrayList<Color>() {
{
add(new Color(250, 97, 18));
add(new Color(237, 38, 42));
add(new Color(0, 111, 60));
add(new Color(250, 223, 18));
add(new Color(47, 137, 187));
add(new Color(231, 133, 35));
add(new Color(229, 1, 140));
add(new Color(234, 171, 53));
add(Color.decode("#F5F5DC"));
add(Color.decode("#8B008B"));
add(Color.decode("#556B2F"));
add(Color.decode("#483D8B"));
add(Color.decode("#ADFF2F"));
add(Color.decode("#191970"));
add(Color.decode("#9457EB"));
add(Color.decode("#1A1110"));
add(Color.decode("#F984E5"));
add(Color.decode("#536878"));
add(Color.decode("#32127A"));
add(Color.decode("#80461B"));
}
};
@SuppressWarnings("serial")
public static final List<GradientPaint> EYE_CANDY_SIXTIES_GRADIENT_PAINTS = new ArrayList<GradientPaint>() {
{
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(0), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(0)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(1), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(1)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(2), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(2)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(3), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(3)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(4), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(4)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(5), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(5)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(6), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(6)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(7), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(7)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(8), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(8)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(9), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(9)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(10), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(10)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(11), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(11)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(12), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(12)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(13), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(13)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(14), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(14)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(15), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(15)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(16), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(16)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(17), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(17)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(18), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(18)).darker()));
add(new GradientPaint(0f, 0f, EYE_CANDY_SIXTIES_COLORS.get(19), 0f, 0f, (EYE_CANDY_SIXTIES_COLORS.get(19)).darker()));
}
};
...