(二十六)JFreeChart与Struts2.x

        在很多的系统之中,数据的统计结果报表是经常会出现的功能,但是在现在的开发之中们大部分都会基于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进行显示.

总结:

        以上给出的报表,大概有一些了解即可,但是实际上来讲收费的比免费的好用.

        

猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80662139