欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

利用jframechart生成表格

更新时间: 2014-01-05 03:06:44 责任编辑: Author_N1

 

利用JFrameChart生成报表

 案例一:利用application生成(解决中文乱码问题)

源代码如下:

 
package test;

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.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class Test
{
	public static void main(String[] args) throws IOException{
		CategoryDataset dataset = getDataSet();
		JFreeChart chart = ChartFactory.createBarChart3D(
							"水果产量图", // 图表标题
							"水果", // 目录轴的显示标签
							"产量", // 数值轴的显示标签
							dataset, // 数据集
							PlotOrientation.VERTICAL, // 图表方向:水平、垂直
							true, 	// 是否显示图例(对于简单的柱状图必须是false)
							false, 	// 是否生成工具
							false 	// 是否生成URL链接
							);
			FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("D:\\fruit.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,1,chart,400,300,null);
		} finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {}
		}
	}
	/**
	 * 获取一个演示用的简单数据集对象
	 * @return
	 */
	private static CategoryDataset getDataSet() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "成都", "苹果");
		dataset.addValue(200, "成都", "梨子");
		dataset.addValue(300, "成都", "葡萄");
		dataset.addValue(400, "成都", "香蕉");
		dataset.addValue(500, "西昌", "苹果");
		dataset.addValue(200, "西昌", "梨子");
		dataset.addValue(300, "西昌", "葡萄");
		dataset.addValue(400, "西昌", "香蕉");
		return dataset;
	}
	/**
	 * 获取一个演示用的组合数据集对象
	 * @return
	 */
	private static CategoryDataset getDataSet2() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(100, "广州", "苹果");
		dataset.addValue(200, "北京", "梨子");
		dataset.addValue(200, "上海", "梨子");
		dataset.addValue(200, "广州", "梨子");
		dataset.addValue(300, "北京", "葡萄");
		dataset.addValue(300, "上海", "葡萄");
		dataset.addValue(300, "广州", "葡萄");
		dataset.addValue(400, "北京", "香蕉");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(400, "广州", "香蕉");
		dataset.addValue(500, "北京", "荔枝");
		dataset.addValue(500, "上海", "荔枝");
		dataset.addValue(500, "广州", "荔枝");
		return dataset;
	}
}



增加如下的代码,解决汉字乱码问题:

CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
		NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();  
		CategoryAxis domainAxis = categoryplot.getDomainAxis();  
		TextTitle textTitle = chart.getTitle();
		 

		textTitle.setFont(new Font("黑体", Font.PLAIN, 20));   
		   
		domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));  
		   
		domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));  
		  
		numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));  
		 
		numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));  
		    
		chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));




标题乱码

   chart.getTitle().setFont(new Font("宋体", Font.BOLD,12));



其他

   1. CategoryAxis domainAxis = plot.getDomainAxis();  
   2.
   3. // NumberAxis  valueAxis=(NumberAxis) plot.getRangeAxis(); 
   4. //有人说这个是水平方向设置的 方法。
   5. ValueAxis numberaxis = plot.getRangeAxis();
   6.   
   7. /*------设置X轴坐标上的文字-----------*/  
   8. domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));   
   9.   
  10. /*------设置X轴的标题文字------------*/  
  11. domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));   
  12.   
  13. /*------设置Y轴坐标上的文字-----------*/  
  14. numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));   
  15.   
  16. /*------设置Y轴的标题文字------------*/  
  17. numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));   
  18.   
  19. /*------这句代码解决了底部汉字乱码的问题-----------*/  
  20. jfreechart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));  

案例二:Struts2+JFreeChart

前言
     关于Struts2入门以及提高等在这里就不介绍了,但是关于Struts2的学习有以下推荐:

    1. struts2-showcase-2.0.6.war:这个是官方自带的Demo(struts-2.0.6-all.zip\struts-2.0.6\apps目录下),非常全面,直接部署就可以了(很多朋友Struts2能学很好我估计还是直接从这里学来的)。
    2. wiki-WebWork:入了门的朋友应该都知道,strust2由webwork2和struts1.x合并起来的,但主要还是以webwork2为主,所以如果找不到Struts2的资料可以找WebWork资料看看。
    3. Max On Java的博客,他的博客的资料在中文的Struts2算是比较全的了,写得很详细。
    4. The Code ProjectGoogle - CodeSearchKoders:这几个代码搜索网站在我找不到中文资料甚至英文文章的时候帮了我大忙!

     关于JFreeChart入门等这里我也不打算介绍了,中文资料很多了。


 

 

正题
     下面以边帖图片和代码的方式来讲解Struts2JFreeChart的整合。
     搭建环境:首先帖一张工程的目录结构以及所需的jar包。注意:如果你不打算自己写ChartResult的话只需要引入struts2-jfreechart-plugin-2.0.6.jar(这个在struts-2.0.6-all.zip可以找到了):
         
       1.依次帖web.xml、struts.xml、struts.properties和struts-jfreechart.xml几个配置文件的代码:
        web.xml

 

OK!显示的效果是一样的,只是图片格式不一样,当然这里面你可以做更多操作!

 

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:06:44
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18396/
本文WWW.DOC100.NET DOC100.NET版权所有。