Olá pessoal gostaria de saber como faço para inserir labels dos valores das barras nelas, pois por default o jfreechart somente cria os gráficos e não os valores tentei usar o CategoryItemRenderer mas mesmo assim não deu certo.
abaixo o gráfico:
abaixo o código do buffer que gera a imagem.
public static BufferedImage createChartBarrasTotalizaPF(OutputStream out, Object data, List listaRelatorioFinanceiro) {
BufferedImage buf = null;
DefaultCategoryDataset result = new DefaultCategoryDataset();
String label1 = "Contrato";
String label2 = "Previsto ASC";
String label3 = "Contratado OS";
String label4 = "Pago";
//String label5 = "Não Contratado";
for (Iterator<RelatorioFinanceiro> it = listaRelatorioFinanceiro.iterator(); it.hasNext();) {
RelatorioFinanceiro relatorioFinanceiro1 = it.next();
result.addValue(relatorioFinanceiro1.getTotalPFContrato(), label1, relatorioFinanceiro1.getContrato().getNomFabrica());
result.addValue(relatorioFinanceiro1.getTotalPFPreviscASC(), label2, relatorioFinanceiro1.getContrato().getNomeFabrica());
result.addValue(relatorioFinanceiro1.getTotalPFOS(), label3, relatorioFinanceiro1.getContrato().getNomeFabrica());
result.addValue(relatorioFinanceiro1.getTotalPFOSPago(), label4, relatorioFinanceiro1.getContrato().getNomeFabrica());
}
JFreeChart chart = ChartFactory.createBarChart3D("Pontos de Função", "", "Valores",
result, PlotOrientation.VERTICAL, true, true, true);
//Teste da grade
CategoryPlot cp = chart.getCategoryPlot();
NumberAxis rangeAxis = (NumberAxis) cp.getRangeAxis();
rangeAxis.setUpperMargin(0.15);
cp.setBackgroundPaint(Color.lightGray);
cp.setDomainGridlinePaint(Color.black);
cp.setDomainGridlinesVisible(true);
cp.setRangeGridlinePaint(Color.white);
int colorCode = 0x00FFFFFF;
chart.setBackgroundPaint(new Color(colorCode));
chart.getTitle().setPaint(Color.black);
CategoryPlot p = chart.getCategoryPlot();
p.setRangeGridlinePaint(Color.black);
//Aqui é codigo antigo
CategoryItemRenderer categoryItemRenderer = p.getRenderer();
categoryItemRenderer.setItemLabelsVisible(true);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.black);
buf = chart.createBufferedImage(400, 250);
return buf;
}
Agradeço desde já qualquer ajuda.