`

JFreeChart(结合struts2) 学习总结(包含JFreeChartdemo 的源码和文档)

阅读更多

    最近项目中用到一些图标显示,用的是JFreeChart 来做的。做完以后顺便也总结下,方便以后使用中忘记。

   

    一般的快速学习的话,看下Demo 能最快上手,所以我也采取这种形式。

项目首页:http://www.jfree.org/jfreechart/

由于jfreechart 的文档时收费的,不过google 的强大已经解决了。。哈哈。。有它的demo 的源码和文档

 

 

    下面是一个时间曲线图生成的Demo

 

package test.chart;

import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

public class JFreeChartDemo {

	public static void main(String[] args) throws IOException {
		JFreeChart chart = ChartFactory.createTimeSeriesChart("图表标题", // 图表标题
				"目录轴的显示标签",// 目录轴的显示标签
				"数值轴的显示标签",// 数值轴的显示标签
				getDataSet(),// 数据集
				true, // 是否显示图例
				false, // 是否显示工具提示
				false);// 是否生成URL
		// 重新设置图表标题,改变字体
		chart.setTitle(new TextTitle("重新设置图表标题",
				new Font("黑体", Font.ITALIC, 22)));
		// 取得统计图表的第一个图例
		LegendTitle legend = chart.getLegend(0);
		// 修改图例的字体
		legend.setItemFont(new Font("宋体", Font.BOLD, 14));
		// 取得时间顺序图的plot 对象
		XYPlot plot = (XYPlot) chart.getPlot();
		// 取得横轴
		ValueAxis categoryAxis = plot.getDomainAxis();
		// 设置横轴显示标签的字体
		categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
		categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));
		// 取得纵轴
		NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
		// 设置纵轴的字体
		numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

		FileOutputStream fos = new FileOutputStream("c:/zhxing.jpg");
		// 将图表输出成jpg 文件
		ChartUtilities.writeChartAsJPEG(fos,// 输出到哪个输出流
				1, // jpeg 图片的质量,0~1之间
				chart, // 统计图表对象
				800,// 长
				600// 宽
				);
		fos.close();
		System.out.println("end!");
	}

	private static XYDataset getDataSet() {
		// 时间曲线图1
		TimeSeries s1 = new TimeSeries("时间顺序图1");
		// 该Month 为JFreeChart 自己实现的Month 类,还有其他Day、Year 等,可查看源码得知
		s1.add(new Month(1, 2009), 400);
		s1.add(new Month(2, 2009), 500);
		s1.add(new Month(3, 2009), 200);
		// 时间曲线图2
		TimeSeries s2 = new TimeSeries("时间顺序图2");
		s2.add(new Month(1, 2009), 3700);
		s2.add(new Month(2, 2009), 3800);
		s2.add(new Month(3, 2009), 2900);
		// 用TimeSeriesCollection 来保存多条时间曲线
		TimeSeriesCollection dataset = new TimeSeriesCollection();
		dataset.addSeries(s1);
		dataset.addSeries(s2);
		return dataset;
	}
}

 

 

上面的Dome 是参照了struts2 权威指南上的,还有一些图例显示,将在以后再添加进来。。。

 

   看了几个图例的生成,可以总结下大概的步骤:

   1、用CharFactory 工厂生成相应的图例,其构造方法基本有些类似。

   2、可以重新设置标题(可以发现凡是有文字显示的通常可以设置字体的风格和大小)

   3、获取相应的图例对象

   4、设置图例对象的一些属性,如字体等。

   5、用ChartUtilities可以将图例生成在文件中。

   而生成数据阶段则对象生成相应的对象,然后添加数据就可以了。。

 

在struts2 的项目上,可以参看下面的Demo

 

public class Struts2Demo extends ActionSupport{	
	private JFreeChart chart;

	//获取的action方法
	public String LoadChart() throws IOException{	
		chart=this.gainChart();
		return SUCCESS;
	}
			
	/**
	 * 获得图例对象
	 */
	private JFreeChart gainChart() throws IOException{
		JFreeChart chart=ChartFactory.createXXXChart(
				"", 
				"", 
				getDataSet(resultYear,workerid), 
				true, 
				false, 
				false);
		//other code
		return chart;
	}
	//返回一个XXXXDataSet实例
	private XXXDataset getDataSet(){

	//	other code

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

 

<package name="demo" extends="jfreechart-default">
		<action name="Struts2Demo" class="Struts2Demo" method="LoadChart">
			<result type="chart">
				<param name="width">800</param>
				<param name="height">600</param>
			</result>
		</action>
</package>

 

当然要加上Struts2 中的jfreechart 的插件包

 

 

由于时间不够,先记录下这些,以后补充。。

 



 

  • 大小: 128.3 KB
分享到:
评论

相关推荐

    JFreeChart+Struts2实践例子

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

    struts2 + jfreechart demo

    Struts2和JFreeChart是两个在Java Web开发中广泛使用的框架和技术。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建结构化的Web应用程序,而JFreeChart是一个开源图表库,能够生成各种高质量的图表...

    jfreechart与struts2的整合

    将JFreeChart与Struts2整合,可以将动态生成的图表展示在Web页面上,为用户提供直观的数据展示。 首先,我们需要理解JFreeChart的基本用法。JFreeChart提供了丰富的API来创建和定制图表。例如,要创建一个简单的...

    JfreeChart与Struts2结合使用例子

    总结来说,JfreeChart与Struts2的结合使用使得在Java Web应用中创建动态图表变得简单。开发者只需要按照上述步骤进行配置和编码,就可以在页面上显示各种复杂的数据图表,从而提升用户体验,直观地展现数据信息。

    JFreeChart(Struts1+jFreeChart)

    综上所述,"JFreeChart(Struts1+jFreeChart)"的整合是Java Web开发中的一个典型应用场景,它结合了Struts1的MVC架构优势和JFreeChart的图表绘制能力,实现了动态数据的可视化展示。在实际项目中,还需要考虑如何优化...

    jfreechart整合struts2的压缩包

    学习并按照文档操作,可以帮助开发者快速掌握JFreeChart与Struts2的整合技巧,提升Web应用的交互性和用户体验。 总的来说,JFreeChart和Struts2的整合,使得开发者能够方便地在Web应用中集成动态图表功能,这对于...

    jfreechart和struts2的例子

    总的来说,JFreeChart和Struts2的结合使得Java Web开发人员能够快速构建具有强大图表功能的应用程序,无论是用于数据分析还是用户界面的美化,都是一个非常实用的技术组合。理解这两者的集成原理和实践技巧,对于...

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

    总之,JFreeChart和Struts2的结合使得Java Web应用能够轻松生成交互式图表,为用户提供直观的数据展示。通过学习和实践,开发者可以进一步掌握这两种工具的使用,提升Web应用的功能性和用户体验。

    JFreeChartDemo案例的源码

    通过查看源码,你可以学习到如何将 JFreeChart 整合进Web应用,以及如何利用它创建出具有交互性的图表。 总结,JFreeChart 是一个强大且灵活的 Java 图表库,它能够帮助开发者轻松地在Servlet中创建各种图表,并且...

    jfreechart-1.0.19demo源码

    这个"jfreechart-1.0.19demo源码"是JFreeChart库的一个特定版本——1.0.19的演示代码集合,包含了各种示例和用法,帮助开发者理解和学习如何使用该库。 JFreeChart库的主要特点包括: 1. **图表类型丰富**:...

    jfreechart+struts2 图形报表

    总结,JFreeChart与Struts2的整合为Java Web开发提供了强大的图形报表能力。通过导入Excel数据,开发者可以轻松地将业务数据可视化,从而帮助用户更好地理解和分析信息。同时,通过不断优化和扩展,可以构建出功能...

    struts2+jfreechart

    在`jfreechartDemo`这个项目中,应该包含了使用Struts2和JFreeChart创建上述三种图表的示例代码。通过分析这些代码,你可以更深入地了解如何在实际项目中整合这两个库,创建动态、交互式的Web图表。记住,实践是最好...

    jfreechart demo 源码

    这个 Demo 包含了各种图表的实例,通过这些源代码,我们可以深入学习如何创建和定制 JFreeChart 图表。 首先,让我们来看看 JFreeChart 的核心概念: 1. **图表(Chart)**:JFreeChart 的所有图表都是 `Chart` 类...

    struts和jfreechart结合

    这个与动态生成表统计图有着很重要的关系。希望能帮助到大家。欢迎大家的下载。

    jfreechart 1.0.6 demo 源码

    总结来说,JFreeChart 1.0.6的Demo源码是学习和掌握图表开发的宝贵资源。通过深入研究源码,开发者不仅可以了解JFreeChart的基本用法,还能探索其高级特性和自定义选项,提升图表设计和开发的能力。在实际项目中,...

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

    总结起来,JFreeChart和Struts2的结合使得开发者能够轻松地在Web应用中创建和展示动态图表。通过Struts2的Action和Result机制,我们可以将JFreeChart生成的图表以图片形式发送到客户端,提供直观的数据可视化效果。...

    Struts2与Jfreechart结合产生报表统计图

    在企业级应用中,通常需要生成各种报表和统计图表来展示数据,而Struts2和JFreeChart的结合就提供了解决这一需求的有效途径。 Struts2是一个基于MVC设计模式的Web应用框架,它简化了Java Servlet和JavaServer Pages...

    Struts2 与JFreeChart结合使用实例

    结合Struts2和JFreeChart,开发者可以创建交互式、数据丰富的Web应用,将后台处理的数据以图形方式展示给用户,提升用户体验。下面我们将深入探讨如何在Struts2框架中集成JFreeChart,并通过一个实际的运行实例来...

    jfreechart-1.0.17demo源码

    首先,JFreeChart 1.0.17 Demo 源码是学习和理解该库功能的重要资源。通过阅读和分析这些源代码,开发者可以了解到如何创建、定制以及操作各种类型的图表。其中,`SuperDemo`是运行入口,它是整个Demo的核心,包含了...

Global site tag (gtag.js) - Google Analytics