Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Jasper图表主题抛出java.lang.IndexOutOfBoundsException:索引:7,大小:7?_Java_Jasper Reports - Fatal编程技术网

为什么Jasper图表主题抛出java.lang.IndexOutOfBoundsException:索引:7,大小:7?

为什么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

我正在用Jasper Report测试图表主题。为什么我使用
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()));
    }
};
...