Jasper reports 条形图条形宽度在jasper中非常薄

Jasper reports 条形图条形宽度在jasper中非常薄,jasper-reports,bar-chart,jfreechart,Jasper Reports,Bar Chart,Jfreechart,我在ireport 3.0中创建了一个条形图,问题是条形图非常薄。当我试图通过自定义r类来增加条宽时,它并没有反映条宽的任何变化,即宽度和原来一样。那么如何增加条形图的条形图宽度呢?我附上一份图像副本供您理解 钢筋宽度如图所示 我也面临同样的问题。经过长时间的搜索,我找到了一些解决方案,解决了我的问题。jasper报告条形图的条形宽度取决于图表的高度和宽度。由于jasper在后端使用JFreechart,因此定制类可能会进行很多修改。为了增加条形图的宽度,您需要一个自定义类,然后将其添加到条形

我在ireport 3.0中创建了一个条形图,问题是条形图非常薄。当我试图通过自定义r类来增加条宽时,它并没有反映条宽的任何变化,即宽度和原来一样。那么如何增加条形图的条形图宽度呢?我附上一份图像副本供您理解

钢筋宽度如图所示


我也面临同样的问题。经过长时间的搜索,我找到了一些解决方案,解决了我的问题。jasper报告条形图的条形宽度取决于图表的高度和宽度。由于jasper在后端使用JFreechart,因此定制类可能会进行很多修改。为了增加条形图的宽度,您需要一个自定义类,然后将其添加到条形图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,并在您的jasper项目的类路径中使用该jar


如果您的jasper在java应用程序中运行,那么您可以直接使用该类,而无需制作jar。在代码库中创建自定义类

我也遇到过同样的问题。经过长时间的搜索,我找到了一些解决方案,解决了我的问题。jasper报告条形图的条形宽度取决于图表的高度和宽度。由于jasper在后端使用JFreechart,因此定制类可能会进行很多修改。为了增加条形图的宽度,您需要一个自定义类,然后将其添加到条形图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,并在您的jasper项目的类路径中使用该jar


如果您的jasper在java应用程序中运行,那么您可以直接使用该类,而无需制作jar。在代码库中创建自定义类

没有数字。请检查问题的格式。(点击问题下方左侧的“编辑”按钮)欢迎来到Stack Overflow!我对你的问题进行了编辑,使你的文本适当缩进。缩进4个空格用于代码示例-有关格式的更多信息,请参阅编辑帮助。祝你好运没有数字。请检查问题的格式。(点击问题下方左侧的“编辑”按钮)欢迎来到Stack Overflow!我对你的问题进行了编辑,使你的文本适当缩进。缩进4个空格用于代码示例-有关格式的更多信息,请参阅编辑帮助。祝你好运