¿Cambiar los colores del histograma JFreeChart dinámicamente?

Estoy tratando de mostrar el histograma de una imagen y mostrar solo algunos colores. Ya lo hice con JFreeChart y createXYLineChart y obtuve todos los datos iterando sobre todos los píxeles.

Para acelerarlo, estoy tratando de hacerlo con "createHistogram". He seguidoeste codigo.

Para actualizar el gráfico con los nuevos valores, he usado estos dos métodos:

XYPlot plot = (XYPlot) chart.getPlot();
plot.setDataset(setHistogram(red, green, blue));

Siendo setHistogram, un método que devuelve un HistogramDataset dependiendo de qué casilla de verificación esté activada (rojo booleano, verde y azul).

Eso funciona correctamente según lo previsto.

La segunda cosa que debo hacer cuando lo hago es actualizar los colores de cada serie, ya que de lo contrario obtienen el valor predeterminado. Lo hice siguiendo más o menos el mismo procedimiento que con los valores:

private void setHistogramColors(boolean red, boolean green, boolean blue) {
    XYPlot plot = (XYPlot) chart.getPlot();
    XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    renderer.setBarPainter(new StandardXYBarPainter());
    Paint[] paintArray = null;
    if (red) {
        if (green) {
            if (blue) {
                paintArray = new Paint[3];
                paintArray[0] = new Color(0x80ff0000, true);// translucent red, green & blue
                paintArray[1] = new Color(0x8000ff00, true);
                paintArray[2] = new Color(0x800000ff, true);
            } else {
                paintArray = new Paint[2];
                paintArray[0] = new Color(0x80ff0000, true);
                paintArray[1] = new Color(0x8000ff00, true);
            }
        } else {
            paintArray = new Paint[1];
            paintArray[0] = new Color(0x80ff0000, true);
        }
    } else if (green) {
        if (blue) {
            paintArray = new Paint[2];
            paintArray[0] = new Color(0x8000ff00, true);
            paintArray[1] = new Color(0x800000ff, true);
        } else {
            paintArray = new Paint[1];
            paintArray[0] = new Color(0x8000ff00, true);
        }
    } else if (blue){
        paintArray = new Paint[1];
        paintArray[0] = new Color(0x800000ff, true);
    }
    else {
        return;
    }
    plot.setDrawingSupplier(new DefaultDrawingSupplier(
            paintArray,
            DefaultDrawingSupplier.DEFAULT_FILL_PAINT_SEQUENCE,
            DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE,
            DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE,
            DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE,
            DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE));
}

Pero por lo que puedo ver, esto solo funciona cuando trazo el código por primera vez, y las siguientes tramas de diferentes series tomarán los mismos colores. Aquí hay un ejemplo, los RGB son el color que se supone que son: [ Cuando actualizo con el color rojo va al histograma verde y el verde al azul:

¿Hay alguna forma de arreglar esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta