侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

Java  /  管理员 发布于 8年前   229

本文实例讲述了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;  }}

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>

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="https:/article/<%=graphURL %>" width=800 height=550 border=1 usemap="#<%=filename%>"> </body></html>

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


  • 上一条:
    jsp+servlet+javabean实现数据分页方法完整实例
    下一条:
    JSP+Servlet制作Java Web登录功能的全流程解析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在java中实现的脱敏工具类代码示例分享(0个评论)
    • zookeeper安装流程步骤(0个评论)
    • 在java中你背的“八股文”可能已经过时了(2个评论)
    • 在php8.0+版本中使用属性来增加值代码示例(3个评论)
    • java 正则表达式基础,实例学习资料收集大全 原创(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2018-03
    • 2020-03
    • 2023-05
    • 2023-11
    • 2024-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客