jfreechart

简介(百度百科):

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
JFreeChart截止2011年2月22日为止的相当不错的java图形解决方案,基本能够解决目前的图形方面的需求。

官网:http://www.jfree.org/jfreechart/

话说可以下载,本人,人品不好吧,官网的下载链接不管用!好在有以前的版本!

JFreeChart可以在java程序和Web程序中,使用,下面以web程序为例介绍:

首先导入jar包,本人在资料库中会上传相关的jar包;

下面的例子是我在书上弄到了例子,仅仅学习参考,是Strust2+JFreeChart1.0!

前台的JSP:

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<h1><font color="blue">请选择喜欢的运动项目</font></h1>
<s:form action="viewResult">
<s:checkbox name="interest" label="足球" fieldValue="football" labelposition="left"></s:checkbox>
<s:checkbox name="interest" label="篮球" fieldValue="basketball" labelposition="left"></s:checkbox>
<s:checkbox name="interest" label="排球" fieldValue="volleyball" labelposition="left"></s:checkbox>
<s:checkbox name="interest" label="羽毛球" fieldValue="badminton" labelposition="left"></s:checkbox>
<!--
<s:checkboxlist list="#{'computer' : '计算机' , 'math' :  '数学'}" name="interest" label="浪曦" labelposition="top">
</s:checkboxlist>--><s:submit value="提交"></s:submit>
</s:form>
</body>
</html>

注意此代码已经将jar包导入!

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">
<struts><constant name="struts.custom.i18n.resources" value="message"></constant><package name="struts2" extends="jfreechart-default"><action name="viewResult" class="com.cjg.action.ViewResultAction"><result name="success" type="chart"><param name="height">600</param><param name="width">800</param></result></action></package>
</struts>

最后是,Action:

package com.cjg.action;
import java.awt.Font;
import java.util.List;
import java.util.Map;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
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;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ViewResultAction extends ActionSupport
{private JFreeChart chart;private List<String> interest;public JFreeChart getChart(){chart = ChartFactory.createBarChart3D("兴趣统计结果", "项目", "结果", this.getDataset(), PlotOrientation.VERTICAL, false, false, false);chart.setTitle(new TextTitle("兴趣统计结果",new Font("黑体",Font.BOLD,22)));CategoryPlot plot = (CategoryPlot)chart.getPlot();CategoryAxis categoryAxis = plot.getDomainAxis();categoryAxis.setLabelFont(new Font("宋体",Font.BOLD,22));categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();numberAxis.setLabelFont(new Font("宋体",Font.BOLD,22));return chart;}public List<String> getInterest(){return interest;}public void setInterest(List<String> interest){this.interest = interest;}@Overridepublic String execute() throws Exception{return SUCCESS;}@SuppressWarnings("unchecked")private void increaseResult(List<String> list){ActionContext context = ActionContext.getContext();Map map = context.getApplication();for (String str : list){if (null == map.get(str)){map.put(str, 1);}else{map.put(str, (Integer) map.get(str) + 1);}}}@SuppressWarnings("unchecked")private CategoryDataset getDataset(){DefaultCategoryDataset dataset = new DefaultCategoryDataset();this.increaseResult(this.getInterest());ActionContext context = ActionContext.getContext();Map map = context.getApplication();dataset.setValue((Integer) map.get("football"), "", "足球");dataset.setValue((Integer) map.get("basketball"), "", "篮球");dataset.setValue((Integer) map.get("volleyball"), "", "排球");dataset.setValue((Integer) map.get("badminton"), "", "羽毛球");return dataset;}
}

web.xml的配置就不说了,这样你的JFreeChart便可以使用了。

转载于:https://blog.51cto.com/seasky09/1227446

jfreechart的使用相关推荐

  1. 报表应用系列——图表JFreeChart: 第 4 章 折线图

    双击代码全选 1 2 3 4 5 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(100 ...

  2. Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 这个项目适合SSM框架的初学者(涉及大量增删改查,很适合初学者)以及对Shiro安全框架和Poi技术感兴趣的同学. 项目功能: 用户管理功能 ...

  3. Open Flash Chart组件的使用 及 与 jfreechart, FusionCharts 的比较

    http://crabdave.javaeye.com/blog/189653 Open Flash Chart组件的使用 简介 OpenFlashChart是一个开源的报表制作组件,该组件能够自动生 ...

  4. java 柱状图下载_(JFreeChart)Java图表制作

    (JFreeChart)Java图表制作软件时一个灵活的设计,很容易扩展,和目标服务器端和客户端应用程序;,支持多种图表类型. 输出类型也是多样化.包括Swing组件.图像文件(包括PNG和JPEG) ...

  5. 使用自定义色系美化JfreeChart图表

    JFreeChart所使用的色系生成的图表很难看,笔者深有体会.在使用到JfreeChart的一些项目中经常会有客户提出"能不能由我们自己去设置图表中每个分类的颜色"等等诸如此类的 ...

  6. JFreeChart使用说明一--api介绍

    jfreeChart 中文手册 jfreechartUI JFreeChart类: void setAntiAlias(boolean flag)    字体模糊边界 void setBackgrou ...

  7. 利用JFreeChart绘制股票K线图

    因为工作的需要,接触了一些股票图形绘制类的工作,其中最主要的还是股票K线图的绘制了,如果利用编程语言最底层的图形绘制方法去绘制这类图形,如果对编程语言不是特别熟悉的话,一般是有很大的困难的,通过在网上 ...

  8. struts2 spring jfreechart 整合

    jfreechart和servlet结合使用很简单,只要把图片生成了就能通过servlet显示到画面上去,jfreechart和struts2的结合使用其实看上去也很简单,网上大部分方法都是用< ...

  9. JFreeChart入门

    JFreeChart主要用来各种各样的图表,这些图表包括:饼图.柱状图(普通柱状图以及堆栈柱状图).线图.区域图.分布图.混合图.甘特图以及一些仪表盘等等 (源代码下载) 示例程序运用的jar包: j ...

最新文章

  1. sql server 2005分页存储过程和sql server 2000分页存储过程(摘)
  2. 三、const常量声明方式
  3. tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别
  4. C宏定义中## 和# 的含义
  5. gc的原因 频繁full_系统缓慢+CPU 100%+频繁Full GC问题的定位排查思路!
  6. JavaScript的运动——加速运动篇
  7. 怎么用odbc连接mysql数据库连接_PowerDesigner通过ODBC来实现Mysql数据库的连接操作...
  8. Flash 缓存问题的解决(转)
  9. 当点击ListView的列头时,对ListView排序
  10. web前端【第三篇】CSS选择器
  11. 如何用 Python 从 0 开始创建一个区块链?
  12. 16.Linux 高性能服务器编程 --- 服务器调制,调试和测试
  13. understanding OpenGL
  14. 牛腩新闻发布系统(一)
  15. 手把手教你如何进行内网渗透
  16. iframe允许嵌入的视频全屏播放
  17. docker 安装dm8 数据库
  18. un3.0服务器文档,ZXUNUSPP系统概述.ppt
  19. 转贴:【游途道标】明帝国曾经拥有的火炮技术到了满清时期已成为可悲的衰落。
  20. Python数据分析-北京房价分析

热门文章

  1. 『并发包入坑指北』之阻塞队列
  2. 某小公司RESTful、共用接口、前后端分离、接口约定的实践
  3. 惊了,AI已经学会刷LeetCode了!
  4. 程序员:我只想买件没有格子的衬衫,怎么就这么难?
  5. 细节解密:当前最佳的YOLOv4是如何炼成火眼金睛的?
  6. 优秀!广州“土博士”刚毕业,即获海外名校终身教职!
  7. 一道让你拍案叫绝的算法题
  8. 个人中心数据接口的开发
  9. python与Redis数据库进行交互(安装包、调用模块、StrictRedis对象⽅法、交互代码示例(string增加、string获取、string修改、string删除、获取键))
  10. TCP和UDP应用场景