How to set different colors to the bars in stacked bar chart in ireport?

You can override the getItemPaint() method of StackedBarRenderer() to return the desired color. You can use getHSBColor() to construct related colors by varying the brightness or saturation for a given hue.

Addendum: The example below will print out the row, column and color for each item. You can use the result as a guide to which custom color you want to return. See BarChartDemo1 for a sample dataset.

plot.setRenderer(new MySBRenderer());
...
private static class MySBRenderer extends StackedBarRenderer {

    @Override
    public Paint getItemPaint(int row, int col) {
        System.out.println(row + " " + col + " " + super.getItemPaint(row, col));
        return super.getItemPaint(row, col);
    }
}

Leave a Comment