我在ireport 3.0中创建了一个Barchart,问题是条形很薄。当我试图通过自定义r类来增加条宽时,它并不反映条的大小的任何变化,即宽度与它相同。那么如何增加条形图条的宽度呢?我附上了一份图片副本供您理解。
条宽如图所示。
答案 0 :(得分:0)
我也面临着同样的问题。经过长时间的搜索,我发现了一些解决了我问题的解决方案。碧玉报告条形图的条形宽度取决于图表的高度和宽度。由于碧玉在后端使用JFreechart,因此自定义类可以进行许多修改。为了增加钢筋的宽度,您需要一个自定义类,然后将其添加到barchart jrxml中,例如波纹管
public class JasperBarChartCustomization implements JRChartCustomizer {
@Override
public void customize(JFreeChart chart, JRChart jasperChart) {
CategoryPlot catPlot = (CategoryPlot) chart.getPlot();
BarRenderer renderer = (BarRenderer) catPlot.getRenderer();
renderer.setMaximumBarWidth(.08);//for max width//
renderer.setItemMargin(-2);//as much margin decrease that much bar width increase//
//for adding value ob bar//
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
renderer.setBaseItemLabelPaint(Color.WHITE);
renderer.setBaseItemLabelFont(new Font("fontname", Font.PLAIN, 6));
//for remove legend background color and box border//
if (chart.getLegend() != null) {
chart.getLegend().setBorder(0.0, 0.0, 0.0, 0.0);
LegendTitle legend = chart.getLegend();
legend.setBorder(0, 0, 0, 0);
legend.setFrame(BlockBorder.NONE);
}
}
}
现在从上述类中创建一个jar,并在ur jasper项目的类路径中使用该jar
如果您的jasper在Java应用程序中运行,那么您可以直接使用该类而无需创建jar。在您的代码库中创建自定义类