下载地址:http://www.javasp.net/jinxin/jinxin.rar (Sonic1.0)
本来可以用cwolf的。但是cwolf不能做统计。返照他的功能自己做了一个。觉得还不错。开发的时候省略了很多JFreeChart的东西。直接做一个连数据的CLASS就可以了。下面是开发指南,希望对要用JFREECHART的人有帮助。
优点:
简化了生成图形的繁琐代码,用TagLib封装了。只要数据对象就可以了
缺点:
只能生成饼图 和 柱图 其他图还没有做
Sonic Chart Tutorial
SETUP for installing the tag library
(First time user)
Tutorial: Step1
How to Install (Making sure you have the Jar File)
To use the tag library, you must first include the jar file into your project.
Put the following JAR files of the /lib directory into your web applications /WEB-INF/lib directory:
l Sonic. jar
l jfreechart-0.9.20.jar
l jcommon-0.9.5.jar
l Commons-logging. jar
Install the sonic Servlet in your Web App
You must add the following code to the web.xml file t o let yours project know the location of the TLDS
<servlet>
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>rg.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
Additionally you should provide a servlet-mapping to tell the container which URL maps to your sonic rendering servlet.
<servlet-mapping>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>servlet/DisplayChart</url-pattern>
</servlet-mapping>
Additionally you should proide a taglib to tell container which URL to find sonic.tld
<taglib>
<taglib>
<taglib-uri>/WEB-INF/sonic.tld</taglib-uri>
<taglib-location>/WEB-INF/sonic.tld</taglib-location>
</taglib>
二.Tutorial: Step 2
Provide a DatasetProducer
1.How to Create a PeChart DatasetProducer
l Createa a java file such ByUsingPeople_PieDB.java
Note:
1. In ByUsingPeople_PieDB.java file you must implements ProductDataSetInterface, Serializable
Below is ByUsingPeople_PieDB.java detail
import org.jfree.data.DefaultPieDataset;
import java.util.ArrayList;
import net.javasp.www.chartfactorymethod.creator.ChartCreatorInterface.ProductDataSetInterface;import java.io.Serializable;
public class IndustryGroupRequire implements ProductDataSetInterface, Serializable{
public ArrayList produceDataset() throws Exception {
// Create a DefaultPieDataset object
DefaultPieDataset ds = new DefaultPieDataset();
String total = null;
String percent = null;
ArrayList list = new ArrayList();
// The data which need set into DefaultPieDataset object
ds.setValue("第一产业比重", 36);
ds.setValue("第二产业比重", 24);
ds.setValue("第三产业比重", 20);
// Below chart show total info
String[] totalname = {"所占比重:", ""};
list.add(ds);
list.add("80"+"%");
list.add("");
list.add(totalname); //3
list.add("other"); //
return list;
}
}
Tutorial: Step 3
Define the chart in your JSP
1. Create a jsp file such as piechart.jsp
Note:
1. The taglib sonic attribute must same to <jsp useBean id> attribute Such as <sonic:plotchart id=”pieData” …> and <jsp:useBean id=”pieData” …>
2. type="piechart" type attribute must be “piechart”
Below is piechart.jsp detail
piechart.jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@taglib uri='/WEB-INF/sonic.tld' prefix='sonic' %>
<jsp:useBean id="pieData" class=" net.javasp.www.piechartdataset.ByUsingPeople_PieDB "/>
<html>
<head>
<title>
按行业分组的需求人数
</title>
</head>
<body bgcolor="#ffffff">
<div align="center">
<sonic:plotchart id="pieData" type="piechart" name="按行业分组的需求人数" hight="700" width="700" />
</div>
</body>
</html>
2.How to Create a Column Chart DatasetProducer
Note:
l Createa a java file such SupplyTotalCount.java
In ByUsingPeople_PieDB.java file you must implements ProductDataSetInterface, Serializable
import net.javasp.www.chartfactorymethod.creator.ChartCreatorInterface.ProductDataSetInterface; import java.io.Serializable;
import java.util.ArrayList;
import org.jfree.data.CategoryDataset;
import org.jfree.data.DatasetUtilities;
/**
* <p>Title: Colum3DproduceDataset</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: www.javasp.net</p>
* @author Jstar
* @version 1.0
*/
public class SupplyTotalCount implements ProductDataSetInterface, Serializable {
public SupplyTotalCount() {
}
public ArrayList produceDataset() throws Exception {
int total = 0;
int percent = 0;
ArrayList list = new ArrayList();
//---------------------------------需求人数-----求职人数
double[][] date = new double[][] {{322, 261}, {128, 240}};
String[] rowKeys = {"上期结转", "本期新增"};
String[] columnKeys = {"需求人数", "求职人数"};
String[] totalname = {"需求人数", "求职人数"};
CategoryDataset ds = DatasetUtilities.createCategoryDataset(rowKeys,columnKeys, date);
//total
for (int i = 0; i < 1; i++) {
for (int j = 0; j < date.length; j++) {
total += date[j][i];
}
}
//percent
for (int a = 1; a < 2; a++) {
for (int b = 0; b < date.length ; b++) {
percent += date[b][a];
}
}
list.add(ds);//0
list.add(Integer.toString(total));//1
list.add(Integer.toString(percent));//2
list.add(totalname);//3
list.add("other");//4
return list;
}
}
Define the chart in your JSP
2. Create a jsp file such as columnchart.jsp
Note:
3. The taglib sonic attribute must same to <jsp useBean id> attribute Such as <sonic:plotchart id=” columndata” …> and <jsp:useBean id=” columndata” …>
4. type=" columndata " type attribute must be “columndata”
Below is piechart.jsp detail
piechart.jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@taglib uri='/WEB-INF/sonic.tld' prefix='sonic' %>
<jsp:useBean id="columndata " class=" net.javasp.www.columndataset.SupplyTotalCount "/>
<html>
<head>
<title>
供求总体人数
</title>
</head>
<body bgcolor="#ffffff">
<div align="center">
<sonic:plotchart id=" columndata " type=" columchart " name="供求总体人数" width="500" hight="350 " />
</div>
</body>
</html>