/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package reportbuilder; import java.awt.Font; import java.text.NumberFormat; import net.sf.jasperreports.engine.JRChart; import net.sf.jasperreports.engine.JRChartCustomizer; import org.jfree.chart.JFreeChart; import org.jfree.chart.labels.AbstractCategoryItemLabelGenerator; import org.jfree.chart.labels.CategoryItemLabelGenerator; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; /** * * @author Administrator */ public class CustomizeLineChart implements JRChartCustomizer { @Override public void customize(JFreeChart chart, JRChart jasperChart) { CategoryPlot categoryPlot; LineAndShapeRenderer lineAndShapeRenderer; categoryPlot = (CategoryPlot) chart.getPlot(); lineAndShapeRenderer= (LineAndShapeRenderer) categoryPlot.getRenderer(); lineAndShapeRenderer.setBaseItemLabelsVisible(Boolean.TRUE); lineAndShapeRenderer.setItemLabelFont(new Font("SansSerif", Font.BOLD, 8)); lineAndShapeRenderer.setBaseItemLabelGenerator(new CustomLabelGenerator()); //lineAndShapeRenderer.setBaseItemLabelGenerator((CategoryItemLabelGenerator) new StandardCategoryItemLabelGenerator()); } // Clase customizada, para implementar la visibilidad de los valores del grafico static class CustomLabelGenerator extends AbstractCategoryItemLabelGenerator implements CategoryItemLabelGenerator { /** * Creates a new generator that only displays labels that are greater * than or equal to the threshold value. * * @param threshold the threshold value. */ public CustomLabelGenerator() { super("", NumberFormat.getInstance()); } /** * Generates a label for the specified item. The label is typically a * formatted version of the data value, but any text can be used. * * @param dataset the dataset (null not permitted). * @param series the series index (zero-based). * @param category the category index (zero-based). * * @return the label (possibly null). */ public String generateLabel(CategoryDataset dataset, int series,int category) { String result = null; Number value = dataset.getValue(series, category); result = new java.text.DecimalFormat("#,##0.0000").format(value); // could apply formatting here return result; } /* (non Javadoc) * @see org.jfree.chart.labels.CategoryItemLabelGenerator#generateRowLabel(org.jfree.data.category.CategoryDataset, int) */ public String generateRowLabel(CategoryDataset arg0, int arg1) { // TODO Stub del metodo generado automaticamente return null; } /* (non Javadoc) * @see org.jfree.chart.labels.CategoryItemLabelGenerator#generateColumnLabel(org.jfree.data.category.CategoryDataset, int) */ public String generateColumnLabel(CategoryDataset arg0, int arg1) { // TODO Stub del metodo generado automaticamente return null; } } }