最近项目中用到一些图标显示,用的是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的结合使用,使得Java开发者能够方便地在Web应用中实现各种复杂的图表功能,从而提升数据可视化的质量和用户体验。这五种实践方法覆盖了从静态展示到动态交互,从直接输出到异步加载的...
Struts2和JFreeChart是两个在Java Web开发中广泛使用的框架和技术。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建结构化的Web应用程序,而JFreeChart是一个开源图表库,能够生成各种高质量的图表...
将JFreeChart与Struts2整合,可以将动态生成的图表展示在Web页面上,为用户提供直观的数据展示。 首先,我们需要理解JFreeChart的基本用法。JFreeChart提供了丰富的API来创建和定制图表。例如,要创建一个简单的...
总结来说,JfreeChart与Struts2的结合使用使得在Java Web应用中创建动态图表变得简单。开发者只需要按照上述步骤进行配置和编码,就可以在页面上显示各种复杂的数据图表,从而提升用户体验,直观地展现数据信息。
综上所述,"JFreeChart(Struts1+jFreeChart)"的整合是Java Web开发中的一个典型应用场景,它结合了Struts1的MVC架构优势和JFreeChart的图表绘制能力,实现了动态数据的可视化展示。在实际项目中,还需要考虑如何优化...
学习并按照文档操作,可以帮助开发者快速掌握JFreeChart与Struts2的整合技巧,提升Web应用的交互性和用户体验。 总的来说,JFreeChart和Struts2的整合,使得开发者能够方便地在Web应用中集成动态图表功能,这对于...
总的来说,JFreeChart和Struts2的结合使得Java Web开发人员能够快速构建具有强大图表功能的应用程序,无论是用于数据分析还是用户界面的美化,都是一个非常实用的技术组合。理解这两者的集成原理和实践技巧,对于...
总之,JFreeChart和Struts2的结合使得Java Web应用能够轻松生成交互式图表,为用户提供直观的数据展示。通过学习和实践,开发者可以进一步掌握这两种工具的使用,提升Web应用的功能性和用户体验。
通过查看源码,你可以学习到如何将 JFreeChart 整合进Web应用,以及如何利用它创建出具有交互性的图表。 总结,JFreeChart 是一个强大且灵活的 Java 图表库,它能够帮助开发者轻松地在Servlet中创建各种图表,并且...
这个"jfreechart-1.0.19demo源码"是JFreeChart库的一个特定版本——1.0.19的演示代码集合,包含了各种示例和用法,帮助开发者理解和学习如何使用该库。 JFreeChart库的主要特点包括: 1. **图表类型丰富**:...
总结,JFreeChart与Struts2的整合为Java Web开发提供了强大的图形报表能力。通过导入Excel数据,开发者可以轻松地将业务数据可视化,从而帮助用户更好地理解和分析信息。同时,通过不断优化和扩展,可以构建出功能...
在`jfreechartDemo`这个项目中,应该包含了使用Struts2和JFreeChart创建上述三种图表的示例代码。通过分析这些代码,你可以更深入地了解如何在实际项目中整合这两个库,创建动态、交互式的Web图表。记住,实践是最好...
这个 Demo 包含了各种图表的实例,通过这些源代码,我们可以深入学习如何创建和定制 JFreeChart 图表。 首先,让我们来看看 JFreeChart 的核心概念: 1. **图表(Chart)**:JFreeChart 的所有图表都是 `Chart` 类...
这个与动态生成表统计图有着很重要的关系。希望能帮助到大家。欢迎大家的下载。
总结来说,JFreeChart 1.0.6的Demo源码是学习和掌握图表开发的宝贵资源。通过深入研究源码,开发者不仅可以了解JFreeChart的基本用法,还能探索其高级特性和自定义选项,提升图表设计和开发的能力。在实际项目中,...
总结起来,JFreeChart和Struts2的结合使得开发者能够轻松地在Web应用中创建和展示动态图表。通过Struts2的Action和Result机制,我们可以将JFreeChart生成的图表以图片形式发送到客户端,提供直观的数据可视化效果。...
在企业级应用中,通常需要生成各种报表和统计图表来展示数据,而Struts2和JFreeChart的结合就提供了解决这一需求的有效途径。 Struts2是一个基于MVC设计模式的Web应用框架,它简化了Java Servlet和JavaServer Pages...
结合Struts2和JFreeChart,开发者可以创建交互式、数据丰富的Web应用,将后台处理的数据以图形方式展示给用户,提升用户体验。下面我们将深入探讨如何在Struts2框架中集成JFreeChart,并通过一个实际的运行实例来...
首先,JFreeChart 1.0.17 Demo 源码是学习和理解该库功能的重要资源。通过阅读和分析这些源代码,开发者可以了解到如何创建、定制以及操作各种类型的图表。其中,`SuperDemo`是运行入口,它是整个Demo的核心,包含了...