package rep; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.axis.Axis; import java.awt.BasicStroke; import extended by org.jfree.chart.renderer.category.LineAndShapeRenderer public class Custom1 implements net.sf.jasperreports.engine.JRChartCustomizer{ public void customize(org.jfree.chart.JFreeChart chart, net.sf.jasperreports.engine.JRChart jasperChart){ XYPlot p = chart.getXYPlot(); ValueAxis a = null; double diferencia; double minimo; double maximo; float f ; f= 0.1000f; a = p.getDomainAxis();//El eje de las X minimo = a.getLowerBound(); maximo = a.getUpperBound(); jfree.chart.renderer.XYDotRenderer renderer = new jfree.chart.renderer.XYDotRenderer(); java.awt.Polygon poly = new java.awt.Polygon(); . . . // Make a triangle poly.add(100, 100); poly.add(150, 150); poly.add(50, 150); renderer.setShape(poly); p.setRenderer( renderer ); if(minimo<1) { minimo=a.getLowerBound()*-1;} if(maximo<1) {maximo=a.getUpperBound()*-1;} diferencia=maximo-minimo; if( diferencia <1 ){ a.resizeRange(80.0);//80 veces m'as amplio p.setDomainAxis( a ); a = p.getRangeAxis();//el eje de las Y a.resizeRange(1.0);//se queda igual // a.setFixedDimension(400); p.setRangeAxis( a ); System.out.println( p.getDomainCrosshairStroke());