在很多的系统之中,数据的统计结果报表是经常会出现的功能,但是在现在的开发之中们大部分都会基于HTML5的Canvas绘图功能完成,如果是直接绘图,那么基本上都很麻烦,所以可以使用大量的第三方开发包,在很久以前就存在有一个Java可用的统计图的工具--JFreeChart,是一个免费的绘图工具
使用JFreeChart绘制一个图形
下面就使用此组件绘制一个最简单的图形显示
package cn.zwb.demo; import java.awt.Font; import java.io.File; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.title.TextTitle; import org.jfree.data.general.DefaultPieDataset; public class CreatePieDemo { public static void main(String[] args) throws IOException { DefaultPieDataset dataset=new DefaultPieDataset(); dataset.setValue("Java", 30000); dataset.setValue(".NET", 50000); dataset.setValue(".NET", 50000); dataset.setValue("PHP", 8000); dataset.setValue("Node", 15000); JFreeChart chart =ChartFactory.createPieChart("语言开发分布图",dataset); chart.setTitle(new TextTitle("语言使用统计分布",new Font("宋体",Font.BOLD,20))); ChartUtilities.saveChartAsJPEG(new File("E:"+File.separator+"pie.png"), chart, 500, 500); } }
只要设置好数据,都可以按照同样的风格进行图形的展示.
在Struts2.x中引用JFreeChart组件
Struts2.x里面融合了大量的第三方的开发支持,所以用户也可以直接在Struts2.x里面使用绘图操作,但是在增加Struts2.x支持的时候需要选择好相应的开发包操作.
如果在Struts2.x里面要使用绘图,那么就是将JSP页面作为显示图形的模板.
范例:定义一个PieAction
package cn.zwb.action; import java.awt.Font; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.title.TextTitle; import org.jfree.data.general.DefaultPieDataset; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class PieAction extends ActionSupport{ private JFreeChart chart; public void setChart(JFreeChart chart) { this.chart = chart; } public JFreeChart getChart() { return chart; } public String create(){ DefaultPieDataset dataset=new DefaultPieDataset(); dataset.setValue("Java", 30000); dataset.setValue(".NET", 50000); dataset.setValue(".NET", 50000); dataset.setValue("PHP", 8000); dataset.setValue("Node", 15000); this.chart =ChartFactory.createPieChart("语言开发分布图",dataset); chart.setTitle(new TextTitle("语言使用统计分布",new Font("宋体",Font.BOLD,20))); return "jfree"; } }
范例:在struts.xml文件里面配置此Action
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="root" namespace="/" extends="struts-default"> <result-types> <result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"> <param name="height">500</param> <param name="width">500</param> </result-type> </result-types> <action name="PieAction" class="cn.zwb.action.PieAction"> <result name="jfree" type="char"></result> </action> </package>
此时表示可以将Action里面设置的数据交给JFreeChart进行显示.
总结:
以上给出的报表,大概有一些了解即可,但是实际上来讲收费的比免费的好用.