java之报表组件JFreeChart
2013-04-02 10:09
369 查看
编写案例之前请先下载相关的jar包,笔者用的是jfreechart-1.0.13.jar(下载地址:http://download.csdn.net/detail/huacai2010/5212072)和jcommon-1.0.16.jar(下载地址:http://download.csdn.net/detail/huacai2010/5212059)
1.柱状图
结果图:
换成getDataSet2()方法后的结果图:
2.饼状图
结果图:
1.柱状图
package com.chart.demo; 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.StandardChartTheme; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; /** * 该类用于演示最简单的柱状图生成 * @author Winter Lau */ public class BarChartDemo { public static void main(String[] args) throws IOException{ CategoryDataset dataset = getDataSet(); //以下是解决中文乱码 //创建主题样式 StandardChartTheme standardChartTheme=new StandardChartTheme("CN"); //设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20)); //设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15)); //设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15)); //应用主题样式 ChartFactory.setChartTheme(standardChartTheme); JFreeChart chart = ChartFactory.createBarChart3D( "水果产量图", // 图表标题 "水果", // 目录轴的显示标签 "产量", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是 false) false, // 是否生成工具 false // 是否生成 URL 链接 ); FileOutputStream fos_jpg = null; try { fos_jpg = new FileOutputStream("E:\\fruit.jpg"); ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,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(500, null, "荔枝");java.lang.IllegalArgumentException: Null 'key' argument. 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; } }
结果图:
换成getDataSet2()方法后的结果图:
2.饼状图
package com.chart.demo; 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.StandardChartTheme; import org.jfree.data.general.DefaultPieDataset; /** * 用于演示饼图的生成 * @author Winter Lau */ public class PieChartDemo { public static void main(String[] args) throws IOException{ DefaultPieDataset data = getDataSet(); //以下是解决中文乱码 //创建主题样式 StandardChartTheme standardChartTheme=new StandardChartTheme("CN"); //设置标题字体 standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20)); //设置图例的字体 standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15)); //设置轴向的字体 standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15)); //应用主题样式 ChartFactory.setChartTheme(standardChartTheme); JFreeChart chart = ChartFactory.createPieChart3D("水果产量图", // 图表标题 data, true, // 是否显示图例 false, false ); // 写图表对象到文件,参照柱状图生成源码 FileOutputStream fos_jpg = null; try { fos_jpg = new FileOutputStream("E:\\fruitPie.jpg"); ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,chart,400,300,null); } finally { try { fos_jpg.close(); } catch (Exception e) {} } } /** * 获取一个演示用的简单数据集对象 * @return */ private static DefaultPieDataset getDataSet() { DefaultPieDataset dataset = new DefaultPieDataset(); dataset.setValue("苹果",100); dataset.setValue("梨子",200); dataset.setValue("葡萄",300); dataset.setValue("香蕉",400); dataset.setValue("荔枝",500); return dataset; } }
结果图:
相关文章推荐
- Java开发实用工具及组件应用(JFreeChart、PDF组件-iText、jasper report报表、Maven)
- java的绘画图报表的组件_JFreeChart
- 三种Java开源报表工具/组件。
- java中显示列表有很多成型的组件,但我喜欢RICO一个开源的报表显示组件(javascript)的不分页显示
- JFreeChart开源图表组件在Java开发中的应用(二)
- 三种Java开源报表工具/组件
- java学习笔记之 jfreechart报表,饼形图,用swing画
- java做图表(报表)--JFreeChart综合应用
- 三种Java开源报表工具/组件
- 三种Java开源报表工具/组件介绍
- Java报表之JFreeChart-第二讲
- Java中使用iText组件制作pdf报表
- Java程序中用JFreeChart制作图形报表-Java基础-Java-编程开发
- jfreechart,pdf生成组件iText,jasper report报表组件及POI操作excel等在企业软件开发中常遇到的第三方应用
- Java报表之JFreeChart-第一讲
- java jfreechart报表,饼形图,用swing画
- java报表制作组件itext使用
- JFreeChart基于Java Web的报表组件的使用以及解决乱码
- 【JFreeChart报表组件】使用JFreeChart进行图形报表打印
- java报表之JFreeChart视频教程