步骤说明:
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="<%=graphURL %>" width=800 height=550 border=1 usemap="#<%=filename%>">
</body>
</html>
- 多条折线图.rar (2.1 MB)
- 描述: 我的JavaWeb图形报表折线图实例
- 下载次数: 282
分享到:
相关推荐
我的JavaWeb图形报表柱状图实例 博文链接:https://zmx.iteye.com/blog/375727
主要介绍了JavaWeb实现图形报表折线图的方法,涉及JSP包的引用、图形操作、配置文件设置及字符串操作技巧,需要的朋友可以参考下
javaweb项目报表案例。采用JFreeChart插件,包含其使用详细教程。
动态折线图
javaweb,开源,报表,JFreeChart,详解
javaweb课程设计图书购物网站源代码。基于JSP和MySQL的网上图书购物系统。javaweb课程设计图书购物网站源代码。基于JSP和MySQL的网上图书购物系统。javaweb课程设计图书购物网站源代码。基于JSP和MySQL的网上图书...
这是一个很好而且很实用的基于JavaWeb中的图形化报表实例
不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:图书馆管理系统 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:图书馆管理系统 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:图书...
JavaWeb知识结构图,是帮助我们学习JAVA的一种方向。
基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅系统基于JavaWeb的学院图书借阅...
JavaWeb开发技术方案宝典介绍在在不同情况下JavaWeb开发可采用的技术的选择方案 现在上传的是关于JavaEE中报表打印方面的
JavaWeb课程设计——图书馆管理系统.pptx
用于开发JAVA报表,javaweb图形,及开发如office这样办公软件的最佳选着。。 并开放其源码。。。由于软件太大故分为两部分。。
eclipse,在mvc模式下,使用jsp,servlet,dao,service进行文件(图片)上传,存储到mysql和path中,还能查询显示图片。
java利用jQuery生成图表,柱状图,饼图,折线图
利用javaweb技术采用MVC模式开发的在线图书馆管理系统 整个项目采用myeclipse软件开发,该项目可以直接运行在Tomcat服务器上。 1.项目分别利用jsp显示用户查询前端页面及其管理员对图书的增删改查(CURD)功能界面。...
javaweb实现图片上传,图片加载,图片显示,图片按照任意高宽比例显示,其中上传的图片保存在服务器上
Javaweb网上图书商城
JavaWeb报表开发(附使用说明书,图片,SQL注释)教您三分钟搞定报表,希望能给您带来帮助!