项目中经常需要图表,在网上发现了jfreechart这个东西,很陈很冠希!
以画饼图为例说说吧
先要做好准备工作:
1. 下载jfreechart,我使用的版本是jfreechart-0.9.11
2. 将jfreechart-0.9.11.jar和jcommon-0.8.6.jar这俩个包复制到项目lib中去
3. 这里要注意的是,下载解压后有个servlet.jar,这个不要复制,否则会出错
要建立一个jfreechart图形有三个步骤
1. 建立一个有数据的dataSet
2. 用dataSet创建jfreechart
3. 对jfreechart作一些自定义设计
来看看例子:
首先建立一个工具类MakePie.java
import java.io.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.DefaultPieDataset;
public class MakePie {
public void makePie(DefaultPieDataset dataset) throws IOException {
JFreeChart chart = ChartFactory.createPie3DChart("交纳费用图", // 图表标题
dataset,
true, // 是否显示图例
false,
false
);
PiePlot plot = (PiePlot)chart.getPlot();
plot.setSectionLabelType(PiePlot.VALUE_AND_PERCENT_LABELS);
plot.setStartAngle(120);
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,200,chart,400,300,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}
}
在action里面建立dataSet并调用makePie方法生成图像
double payOtherTotal=0.00;
double payItemTotal=0.00;
double payRenoveTotal=0.00;
double payWaterTotal=0.00;
MakePie mk = new MakePie();
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("一般费用", payTotal);
dataset.setValue("杂费", payOtherTotal);
dataset.setValue("电梯运材费", payItemTotal);
dataset.setValue("装修管理费", payRenoveTotal);
dataset.setValue("水费费", payWaterTotal);
try {
mk.makePie(dataset);
} catch (IOException e1) {
e1.printStackTrace();
}