JFreeChart的下载地址为http://sourceforge.net/project/showfiles.php?group_id=15494,解压下载的jfreechart_1.0.9.zip包到指定位置,为了配置成功,需要lib目录中的jfreechart-1.0.9.jar,jcommon-1.0.12.jar文件拷贝到TEST/WEB-INF/LIB中。 还需要插件:struts2-jfreechart-plugin-2.0.11.jar(在struts2发布包的lib目录下可以找到),
10.21.3 使用JFreeChart从配置文件开始:在struts.xml文件增加一个对生成图表包,如下
<package name="chartaction" extends="jfreechart-default"> <action name="chartAction" class="com.struts2.app.ChartAction" > <result name="success" type="chart"> <!-- 这里一定要设置为chart--> <param name="height">300</param> <param name="width">240</param> </result> </action>
<action name="pieAction" class="com.struts2.app.PieAction"> <result name="success" type="chart"> <!-- 这里一定要设置为chart--> <param name="height">300</param> <param name="width">400</param> </result> </action>
</package>
创建Action类,代码:
package com.yhh.test;
import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;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 {
/* public FirstJFreeChart() { }
public static void main(String[] args){ DefaultPieDataset dpd = new DefaultPieDataset(); dpd.setValue("管理人员",25); dpd.setValue("市场人员",25); dpd.setValue("开发人员",45); dpd.setValue("其他人员",5);
//Create JFreeChart object //参数可以查看源码 JFreeChart pieChart = ChartFactory.createPieChart("CityInfoPort公司组织架构图",dpd,true,true,false); ChartFrame pieFrame = new ChartFrame("CityInfoPort公司组织架构图",pieChart); pieFrame.pack(); pieFrame.setVisible(true); } */ 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.02D); defaultpiedataset.setValue("市场人员",20.23D); defaultpiedataset.setValue("开发人员",60.02D); defaultpiedataset.setValue("OEM人员",10.02D); defaultpiedataset.setValue("其他人员",5.11D);
return defaultpiedataset; }
//生成图表主对象JFreeChart public static JFreeChart createChart(PieDataset piedataset){ //定义图表对象 JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort公司组织架构图",piedataset,true,true,false); //获得图表显示对象 PiePlot pieplot = (PiePlot)jfreechart.getPlot(); //设置图表标签字体 pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12)); pieplot.setNoDataMessage("No data available"); pieplot.setCircular(true); pieplot.setLabelGap(0.01D);//间距
return jfreechart; }
//生成显示图表的面板 public static JPanel createDemoPanel(){ JFreeChart jfreechart = createChart(createDataset()); return new ChartPanel(jfreechart); }
}