如何在jfreechart中为渲染器设置多个outlinePaint(我使用条形图)

时间:2014-05-13 15:13:00

标签: java jfreechart

我是新来的,我有一个问题。 我有这个条形图,我需要它只填充一种颜色(每个条形图),但是,为了产生差异,我需要每个条形的轮廓为不同的颜色(红色或绿色) 我的方法接收数据集1和2,也是数组内的相同数据。好吧,我比较我的阵列然后将颜色设置为绿色或红色。 但是,问题在于,渲染器采用了我的系列的最后一个值。 这是我的代码:

public void crearChartSemanal(DefaultCategoryDataset dataPresupuestos, DefaultCategoryDataset dataGastos, Color[] colores, Color[] coloresBlancos, String tipo, JPanel panel,double[]g,double[]p) {
        Paint coloPaint[] = new Paint[colores.length];
        Paint colorBordes[] = new Paint[coloresBlancos.length];

        coloPaint = coloresBlancos;
        colorBordes = colores;
        final CategoryItemRenderer rendererP = new CustomRenderer(
                coloPaint);


        Paint outline = Color.BLACK;
//        Paint orilla=new Paint(Color.CYAN);

        System.out.println("count "+g.length);
        for (int i = 0; i < g.length; i++) {
            if (g[i] > p[i]) {
//                outline = Color.YELLOW;
                 rendererP.setSeriesOutlinePaint(i,Color.green); 
                 System.out.println("pase al rojo");
            } else if (g[i]<=p[i]){
                //outline = Color.RED;
                rendererP.setSeriesOutlinePaint(i,Color.red); //the renderer takes this value at the end
                System.out.println("njhbñ");
            }
        }

        System.out.println("Estoy aquí");
        //    renderer.setLabelGenerator(generator);
        rendererP.setItemLabelsVisible(true);       
        final CategoryPlot plot = new CategoryPlot();

        plot.setDataset(dataGastos);
//        plot.setOutlinePaint(null);

.... (另外,我对我的英语感到抱歉,希望你理解)

1 个答案:

答案 0 :(得分:0)

如果您继承BarRenderer类,则可以覆盖getItemOutlinePaint()并返回项目大纲所需的任何颜色。