`
aokunsang
  • 浏览: 815292 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jfreechart与struts2结合,实现折线图、饼状图、柱状图的页面显示

阅读更多

工作辞了,找工作之余,学习了一下jfreechart图表生成,结合大虾们的著作,小弟进行了系统的总结如下(获益匪浅):

    struts2与jfreechart结合首先需要一个插件包struts2-jfreechart-plugin-2.1.6.jar;然后导入jfreechart的

两个包以及struts2的7个应用包、包结构见附件a.jpg;附件有项目的压缩包,大家可以下载使用一下。

    写一个公用的service类,里面包含生成柱状图、饼状图、折线图的方法,另附件提供一份jfreechart所有类和方法的

详细解释,你可以根据这些方法把图表设置的美轮美奂。

package aokunsang.chartControl;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;

public class JFreeChartService {
	

//----------------------------------------获取饼状图开始-------------------------------------------------------
	/**
	 * 获取饼状图
	 * @return
	 */
	public static JFreeChart createPieChart(){
		PieDataset pieData = getPieDataset();
		JFreeChart pieChart = ChartFactory.createPieChart3D("水果销量图", pieData, true, true, false);
		PiePlot3D piePlot = (PiePlot3D)pieChart.getPlot();
		piePlot.setBackgroundPaint(Color.WHITE);
		piePlot.setLabelFont(new Font("黑体",Font.BOLD,15));
		resetPlot(piePlot);
		
		pieChart.getLegend().setItemFont(new Font("黑体",Font.BOLD,15));  //设置引用标签字体
		
		pieChart.getTitle().setFont(new Font("华文行楷",Font.BOLD,32));
		
		return pieChart;
	}
	private static PieDataset getPieDataset(){
		DefaultPieDataset data = new DefaultPieDataset();
		data.setValue("苹果", 260);
		data.setValue("荔枝", 250);
		data.setValue("橘子", 150);
		data.setValue("香蕉", 140);
		data.setValue("菠萝", 200);
		return data;
	}
	private static void resetPlot(PiePlot3D pieplot){
		String unitStyle = "{0}={1}({2})";
		
		pieplot.setNoDataMessage("没有对应的数据,请重新查询");
		pieplot.setNoDataMessageFont(new Font("华文行楷",Font.BOLD,21));
		pieplot.setNoDataMessagePaint(Color.BLUE);
		
//		pieplot.setToolTipGenerator(new StandardPieToolTipGenerator(
//										unitStyle,
//										NumberFormat.getNumberInstance(),
//										new DecimalFormat("0.00%"))
//									);
		
		//设置图例显示样式
		pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator(
										unitStyle,
										NumberFormat.getNumberInstance(),
										new DecimalFormat("0.00%"))
								    );
		//设置引用标签显示样式
		pieplot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
				   unitStyle,
				   NumberFormat.getNumberInstance(),
				   new DecimalFormat("0.00%")));
	}
	。。。。。。。

 

然后写三个Action,分别用于显示三种图例,它们的方法几乎相同。Action中都得定义一个JFreeChart,对象名字必须

为chart。

public class BarFreeChartAction extends ActionSupport {

	private JFreeChart chart;
	
	
	public JFreeChart getChart() {
		return chart;
	}


	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}


	public String execute(){
		this.setChart(JFreeChartService.createBarChart());
		return SUCCESS;
	}
}

    最重要的就是struts.xml配置文件。

   

<package name="jfreechartPackage" extends="jfreechart-default" namespace="/">
		
	<!-- 柱状图 -->
	<action name="barFreeChartAction" class="aokunsang.action.BarFreeChartAction">
		<result name="success" type="chart">
			<param name="width">700</param>
			<param name="height">400</param>
		</result>
	</action>
	

 

    需要继承jfreechart-default.xml,可查看struts2-jfreechart-plugin-2.1.6.jar中org.apache.struts2.dispatcher包下面的struts-plugin.xml文件:

<struts>
    <package name="jfreechart-default" extends="struts-default">
    
    	<result-types>
    		<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
    			<param name="height">150</param>
    			<param name="width">200</param>
    		</result-type>
    	</result-types>
    </package>

</struts>

 

最后就是简单的jsp文件了:

<html>
  <head>
    <title>jfreechart的图例</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="Content-Type" content="UTF-8">      
  <body>
  <center>饼状图和柱状图的效果呈现如下</center>
  饼状图(3D图):<br/>
  <img border="0" src="pieFreeChartAction.action"><p>&nbsp;</p>
  柱状图(3D图):<br/>
  <img border="0" src="barFreeChartAction.action"><p>&nbsp;</p>
  折线图(非3D图):<br/>
  <img border="0" src="lineFreeChartAction.action">
  </body>
</html>

 

 

  • 大小: 36.8 KB
  • 大小: 79.7 KB
  • 大小: 88.7 KB
分享到:
评论
2 楼 dong8yi1ke5 2013-03-29  
1 楼 kingboy0502 2010-12-01  
感觉都一样~!!!

相关推荐

    jfreechart 与struts2的柱状图以及折线图例子

    本篇文章将深入探讨如何在Struts2框架下利用JFreeChart创建柱状图和折线图。 **JFreeChart简介** JFreeChart是一个强大的Java图表库,它支持生成各种类型的图表,包括柱状图、折线图、饼图、散点图等。JFreeChart...

    Struts2+JFreeChart+饼状图,柱状图,折线图

    总结一下,"Struts2+JFreeChart+Myeclipse实现饼状图,柱状图,折线图"这一主题涉及到以下几个关键知识点: 1. Struts2框架的基本概念和MVC设计模式。 2. JFreeChart库的使用,包括创建数据集、生成图表以及转换为...

    JfreeChart与Struts2结合使用例子

    【JfreeChart与Struts2结合使用】 JFreeChart是一个强大的Java图表库,它提供了丰富的图表类型,如柱状图、饼图、折线图、散点图等,用于数据可视化。Struts2是一个流行的MVC框架,常用于构建企业级Web应用。将...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart 是一个开源的Java库,用于生成高质量的2D图表,如折线图、饼图、柱状图和堆栈柱状图等。它广泛应用于数据分析、报告和应用程序中,提供丰富的自定义选项来满足各种视觉需求。在本项目中,你将找到能够...

    jfreechart与struts2的整合

    而JFreeChart是一个强大的图表库,能够生成多种类型的图表,如折线图、柱状图、饼图等,非常适合用于数据可视化。将JFreeChart与Struts2整合,可以将动态生成的图表展示在Web页面上,为用户提供直观的数据展示。 ...

    JFreeChart 折线、柱状组合图

    public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 &lt;!--begin 维优特例 --&gt; ...

    JFreeChart+Struts2实践例子

    总的来说,JFreeChart和Struts2的结合使用,使得Java开发者能够方便地在Web应用中实现各种复杂的图表功能,从而提升数据可视化的质量和用户体验。这五种实践方法覆盖了从静态展示到动态交互,从直接输出到异步加载的...

    JFreeChart 饼图,柱图,折线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图和折线图。在Java应用中,JFreeChart是一个不可或缺的工具,尤其在数据分析、报表生成或可视化数据的场景下。下面我们将深入...

    jfreechart+struts2 图形报表

    **JFreeChart与Struts2整合实现图形报表详解** 在Java Web开发中,为了更好地展示数据,我们常常需要使用图表来直观地呈现信息。JFreeChart是一个强大的Java库,能够生成各种类型的图表,如柱状图、饼图、折线图等...

    struts2+jfreechart

    JFreeChart是一个用于Java的图表库,可以生成多种类型的图表,包括饼状图、柱状图、折线图、散点图等。它为开发者提供了丰富的API,可以定制图表的样式、颜色、标签等细节。JFreeChart的主要特性有: 1. **多种图表...

    jfreechart和struts2的例子

    当这两个工具结合在一起时,可以实现动态生成图表并将其嵌入到Struts2控制的Web页面中。 首先,让我们深入了解JFreeChart。JFreeChart库提供了一组丰富的API,允许开发者以编程方式创建复杂的图表。它支持多种图表...

    柱状图 圆饼图 曲线图 struts2.0 jfreechart

    JFreeChart则是一个强大的Java图表库,能够生成多种类型的图表,包括柱状图、圆饼图和曲线图,非常适合在数据可视化应用中使用。在Struts2.0中集成JFreeChart,可以为Web应用程序添加丰富的图形展示功能,让数据以...

    struts2+jfreeChartStruts简单生成折线图

    在这个项目中,"struts2+jfreeChartStruts简单生成折线图"的实现展示了如何结合这两个工具来生成动态的、交互式的折线图。 首先,让我们深入理解Struts2框架。Struts2是基于Model-View-Controller(MVC)设计模式的...

    Struts2+JFreeChart 柱状图Demo

    Struts2+JFreeChart 柱状图Demo是一个典型的Java Web应用程序,它结合了Struts2框架、JFreeChart库以及可能的数据存储系统(如MySQL或Oracle),用于动态生成柱状图表。这个Demo旨在展示如何在实际项目中集成这些...

    java+struts2实现图表显示

    本教程将详细介绍如何使用Java和Struts2框架来实现在网页上显示各种图表,如折线图、柱状图和饼状图。 首先,我们需要引入图表库。常见的Java图表库有JFreeChart和Chart.js等。在这个案例中,我们可能使用...

    struts2-jfreechart-plugin-2.1.6.jar.zip_jfreechart struts2_jfree

    JFreeChart则是一个强大的Java库,用于生成各种类型的图表,如折线图、柱状图、饼图等,非常适合在Java应用程序中用于数据可视化。在Struts2中集成JFreeChart,可以方便地在Web应用中创建动态图表,例如展示统计信息...

    Struts2 + jfreechart

    Struts2 是一个强大的MVC(Model-View-Controller)框架,而 JFreeChart 是一个Java库,用于生成各种图表,如折线图、柱状图、饼状图等。 Struts2 是 Apache 软件基金会的开源项目,它是Struts1的升级版,引入了...

    JFreeChart实例

    总的来说,JFreeChart结合Struts 2可以轻松地在Web应用中实现数据可视化,通过柱状图、饼状图和折线图等多种图表形式,让复杂的数据变得直观易懂。通过阅读和理解"JFreeChartTest"中的代码,开发者可以快速掌握这一...

Global site tag (gtag.js) - Google Analytics