条形图设置颜色Java_java – 如何在条形图中显示每个条形的条形值?

在iReport 3.7.6中,您只需选中BarPlot属性下的“显示标签”框.

在先前版本(3.1.4)中,我必须创建ChartCustomizer类.

如果您需要格式化标签中的数字(例如,为百分比,添加千位分隔符等),那么您肯定需要ChartCustomizer,即使在新版本中也是如此.

一个简单的例子:

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.plot.CategoryPlot;

import org.jfree.chart.renderer.category.BarRenderer;

import org.jfree.chart.renderer.category.CategoryItemRenderer;

import org.jfree.data.category.CategoryDataset;

public class SimpleBarChartCustomizer implements JRChartCustomizer {

public void customize(JFreeChart chart, JRChart jasperChart) {

CategoryPlot plot = chart.getCategoryPlot();

BarRenderer renderer = (BarRenderer) plot.getRenderer();

CategoryItemRenderer catRenderer = ((CategoryItemRenderer)renderer);

catRenderer.setBaseItemLabelGenerator(new NumberLabelGenerator("", NumberFormat.getInstance()));

}

static class NumberLabelGenerator extends AbstractCategoryItemLabelGenerator implements CategoryItemLabelGenerator {

public NumberLabelGenerator(String labelFormat,

NumberFormat formatter, NumberFormat percentFormatter) {

super(labelFormat, formatter, percentFormatter);

}

protected NumberLabelGenerator(String labelFormat, NumberFormat formatter) {

super(labelFormat, formatter);

}

private NumberFormat formatter = NumberFormat.getInstance();

public String generateLabel(CategoryDataset dataset, int series, int category) {

Number b = dataset.getValue(series, category);

formatter.setMaximumFractionDigits(2);

return formatter.format(b);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值