• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JSP > JavaWeb实现图形报表折线图的方法

JavaWeb实现图形报表折线图的方法

作者:yiluoAK_47 字体:[增加 减小] 来源:互联网 时间:2017-05-11

yiluoAK_47通过本文主要向大家介绍了javaweb报表,javaweb报表工具,javaweb报表开发,马剑威javaweb,javaweb视频等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了JavaWeb实现图形报表折线图的方法。分享给大家供大家参考,具体如下:

步骤说明:

1. 导入log4j.jar,jfreechart-0.9.18.jar,jdom.jar,jcommon-0.9.3.jar四个jar包

2. 在某个包中写入Tuxin.Java类

package com.mengya.util;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardLegend;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.LineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.DefaultCategoryDataset;
public class Line
{
  private DefaultCategoryDataset dataset = new DefaultCategoryDataset();
  public void setValue(int sum, String line, String wfield)
  {
   dataset.addValue(sum, line, wfield);
  }
  public String generateLineChart(String title,String wfield, String hfield, HttpSession session, PrintWriter pw,int wPhoto,int hPhoto)
  {
   String filename = null;
  try
   {
     final JFreeChart chart = ChartFactory.createLineChart
      (
       title, // 图表标题
       wfield, // 横轴的显示标签
       hfield, // 纵轴的显示标签
       dataset, //数据集
       PlotOrientation.VERTICAL, // 图表方向:水平、垂直
       true, // 是否显示图例
       true, // 是否生成提示工具 tooltips
       false // 是否生成URL链接
     );
     StandardLegend legend = (StandardLegend) chart.getLegend();//生成图例
     legend.setDisplaySeriesShapes(true);//显示图例形状
     legend.setShapeScaleX(1.5);//设置图例X轴的大小
     legend.setShapeScaleY(1.5);//设置图例Y轴的大小
     legend.setDisplaySeriesLines(true);//显示图示项的横线
     //设置图片的背景色
     chart.setBackgroundPaint(new java.awt.Color(189,235,255));
     CategoryPlot plot = (CategoryPlot) chart.getPlot();
     plot.setBackgroundPaint(new Color(239,251,255));//生成图片中墙体的背景色
     plot.setRangeGridlinePaint(Color.black);//生成图片中格子线的颜色
     // 没有数据时显示的消息
     plot.setNoDataMessage("没有相关统计数据");
     plot.setNoDataMessageFont(new Font("黑体", Font.CENTER_BASELINE, 16));
     plot.setNoDataMessagePaint(Color.RED);
     NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
     rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//设置图中的刻度线的单位
     rangeAxis.setAutoRangeIncludesZero(true);//强制在自动选择的数据范围中包含0
     LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
     renderer.setDrawShapes(true);//折线的数据点根据分类使用不同的形状
     renderer.setItemLabelsVisible(true);//显示每个点上的数据值的提示工具,数据标签是否可见
     ChartRenderingInfo info = new ChartRenderingInfo(new
       StandardEntityCollection());
     //500是图片长度,300是图片高度
     filename = ServletUtilities.saveChartAsPNG(chart, wPhoto, hPhoto, info, session);
     ChartUtilities.writeImageMap(pw, filename, info);
     pw.flush();
   }
   catch(Exception e)
   {
   e.printStackTrace();
   }
   return filename;
  }
}

</div>

3. 配置web.xml,在web.xml中添加如下内空:

<servlet>
 <servlet-name>DisplayChart</servlet-name>
 <servlet-class>
  org.jfree.chart.servlet.DisplayChart
 </servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>DisplayChart</servlet-name>
 <url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>

</div>

4. 在要显示图片的jsp中添加内容:

<%@ page language="java" import="java.util.*,com.mengya.util.Line,com.mengya.bean.StuBean" pageEncoding="gbk"%>
<%@page import="java.io.PrintWriter;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title>折线图</title>
 </head>
 <body>
 <%
  Line tt = new Line();
  //第一条折线
  List ar = (ArrayList) request.getAttribute("arr1");
  for (int i = 0; i < ar.size(); i++) {
  StuBean bean = (StuBean) ar.get(i);
  tt.setValue((int) bean.getS_money(), "张明学个人消费比例图", bean.getS_month()+ "");
  }
  //条二条折线
  ar = (ArrayList) request.getAttribute("arr2");
  for (int i = 0; i < ar.size(); i++) {
  StuBean bean = (StuBean) ar.get(i);
  tt.setValue((int) bean.getS_money(), "梦娅个人消费比例图", bean.getS_month()+ "");
  }
  //说明:tt.setValue(int a,String b,String c)
  //其中的第二个参数b是该条折线的名字,每条折线的名字最好不要一样.
  String filename = tt.generateLineChart("个人消费比例图", "月   份",
   "费   用", session, new PrintWriter(out), 800, 550);
  String graphURL = request.getContextPath()
   + "/DisplayChart?filename=" + filename;
 %>
 <P ALIGN="CENTER">
 <img src="<%=graphURL %>" width=800 height=550 border=1 usemap="#<%=filename%>">
 </body>
</html>

</div>

希望本文所述对大家JSP程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JavaWeb实现图形报表折线图的方法

相关文章

  • 2017-05-11Java动态代理实现AOP
  • 2017-05-11JSP技术实现RSS订阅功能的示例
  • 2017-05-11jsp实现Servlet文件下载的方法
  • 2017-05-11用jsp编写文件上载
  • 2017-05-11利用Java实现zip压缩/解压缩
  • 2017-05-11使用maven+eclipse搭建struts2开发环境
  • 2017-05-11EJB3.0开发之多对多和一对一
  • 2017-05-11jsp实现页面实时显示当前系统时间的方法
  • 2017-05-11Spring 配置文件XML头部文件模板实例详解
  • 2017-05-11Spring 中 @Service 和 @Resource 注解的区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • JSP 中Spring组合注解与元注解实例详解
    • jsp+mysql数据库操作常用方法实例总结
    • 在Windows/NT上建立JSP环境
    • spring aop详解
    • Java操作文本文件的方法
    • JSP中使用JDBC访问SQL Server 2008数据库示例
    • JAVA 18位身份证号码校验码的算法
    • JSP实现的简单分页示例
    • JSP常见的文件操作小结
    • 基于Java的代理设计模式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有