一、需要jfreechart-1.0.0-rc1.jar,jcommon-1.0.0-rc1.jar包 将其放在lib下
二、在web.xml里如下配置:
<!-- jfreechart配置 -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
三、饼图代码:
package com.lei.jfreechart;
import java.awt.Font;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class FirstJFreeChart extends ApplicationFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
//构造函数
public FirstJFreeChart(String s){
super(s);
setContentPane(createDemoPanel());
}
public static void main(String[] args){
FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort公司组织架构图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
//生成饼图数据集对象
public static PieDataset createDataset(){
DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
defaultpiedataset.setValue("管理人员",10.00D);
defaultpiedataset.setValue("市场人员",20.00D);
defaultpiedataset.setValue("开发人员",50.00D);
defaultpiedataset.setValue("OEM人员",10.00D);
defaultpiedataset.setValue("其他人员",10.00D);
return defaultpiedataset;
}
//生成图表主对象JFreeChart
public static JFreeChart createChart(PieDataset piedataset){
//定义图表对象
JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司组织架构图", // 图表标题
piedataset, //数据集
true, //是否显示图例
true, // 是否生成工具
false); // 是否生成URL链接
PiePlot pieplot = (PiePlot)jfreechart.getPlot(); //获得图表显示对象
pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,15)); //设置图表标签字体
pieplot.setNoDataMessage("No data available"); //设置没有数据时显示的内容
pieplot.setCircular(true); //true表示圆形 false表示椭圆
pieplot.setLabelGap(0.01D);//间距
//("{0}: ({1},{2})")是生成的格式,{0}表示section名,{1}表示section的值,{2}表示百分比。可以自定义。而new DecimalFormat("0.00%")表示小数点后保留两位。
StandardPieSectionLabelGenerator generator = new StandardPieSectionLabelGenerator(("{0}: ({1},{2})"), NumberFormat.getNumberInstance(),new DecimalFormat("0.00%"));
pieplot.setLabelGenerator(generator);
return jfreechart;
}
//生成显示图表的面板
public static JPanel createDemoPanel(){
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
}