我使用的是Jaspersoft Studio 5.5.2。我需要从系列默认值中更改单个栏的颜色。我已经找到了如何创建和分配自定义程序类,以及如何创建自己的条形图渲染器并覆盖它。
问题是,一旦我这样做,图表就会显示一系列重复的柱子向右移动,略低于Y尺度。起初我认为这是某种形式的阴影,但每个行,列组合都会调用两次getItemPaint方法。
我的自定义程序和渲染器(已简化,但已经过测试以显示相同的效果)
public class BarCustomizer extends JRAbstractChartCustomizer{
public void customize(JFreeChart chart, JRChart jasperChart){
CategoryPlot plot = (CategoryPlot) chart.getPlot();
MyBarRenderer newRenderer = new MyBarRenderer();
plot.setRenderer(newRenderer);
}
}
class MyBarRenderer extends BarRenderer {
public MyBarRenderer() {}
@Override
public Paint getItemPaint(final int row, final int column) {
if (column == 17) return Color.red;
return super.getItemPaint(row, column);
}
}
我想要展示“好”的图片。并且'坏'图表,但没有足够的声誉,抱歉。评论plot.setRenderer(newRenderer)将生成一个合适的图表,但没有突出显示我需要的栏。
有没有人知道如何在没有获得这个疯狂的额外系列的情况下提供覆盖BarRenderer的定制器?我已经尝试了一百万件事并且没有成功。
答案 0 :(得分:0)
当然,终于发布后的第二天我发现了Renderer.setShadowVisible(false);方法
即使它实际上看起来不像阴影。将阴影设置为false已将其删除。抱歉浪费你的时间。