JFreechart柱状图在springMVC中的实现
java公共代码
import java.awt.Font;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* <JFreechart公共类>
* <功能详细描述>
* @author zwq
* @version [版本号, 2012-5-30]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class CreateJFreechartUtil
{
public String setImages(HttpServletRequest request, HttpServletResponse response)
throws Exception
{
DefaultCategoryDataset dataset = getDataSet();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", //图表标题
"水果", //目录轴的显示标签
"产量", //数值轴的显示标签
dataset, //数据集
PlotOrientation.VERTICAL, //图表方向:水平、垂直
true, //是否显示图例(对于简单的柱状图必须是false)
false, //是否生成工具
false //是否生成URL链接
);
//解决乱码问题
setImageFont(chart);
//生成图片
String filename = ServletUtilities.saveChartAsPNG(chart, 600, 400, null, request.getSession());
ServletContext servlet = request.getServletContext();
//得到功能路径
String imagePath_area = servlet.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
return imagePath_area;
}
/**
* 解决乱码问题
*/
private void setImageFont(JFreeChart chart)
{
CategoryPlot plot = (CategoryPlot)chart.getPlot();
CategoryAxis domainAxis = plot.getDomainAxis();
ValueAxis numberaxis = plot.getRangeAxis();
//设置标题文字
chart.getTitle().setFont(new Font("宋体", Font.BOLD, 12));
//设置X轴坐标上的文字
domainAxis.setTickLabelFont(new Font("黑体", Font.PLAIN, 11));
//设置X 轴的标题文字
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
//设置Y 轴坐标上的文字
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
//设置Y 轴的标题文字
numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
//设置底部文字
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
}
/**
* 获取一个组合数据集对象
* @return
*/
private DefaultCategoryDataset getDataSet()
{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "北京", "苹果");
dataset.addValue(120, "上海", "苹果");
dataset.addValue(380, "广州", "苹果");
dataset.addValue(230, "北京", "梨子");
dataset.addValue(200, "上海", "梨子");
dataset.addValue(230, "广州", "梨子");
dataset.addValue(400, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(500, "广州", "葡萄");
return dataset;
}
}
Spring Controller 调用
@RequestMapping("/getAllReportRule")
public ModelAndView getAllReportRule(HttpServletRequest request, HttpServletResponse response,
ReportRuleInfo reportRule) throws Exception
{
//创建CreateJFreechartUtil对象,调用setImages方法得到图片
CreateJFreechartUtil createJfreechart = new CreateJFreechartUtil();
String file = createJfreechart.setImages(request, response);
List<ReportRuleInfo> reportList = reportService.getAllReportRule(reportRule);
request.setAttribute("reportList", reportList);
request.setAttribute("report", reportRule);
//把得到的图片放到request范围里面
request.setAttribute("file", file);
return new ModelAndView("warning/report_rule_list");
}
web.xml 配置
<servlet>
<servlet-name>jfreechart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jfreechart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
jsp 显示
<body>
<table width="99%" cellpadding="0" cellspacing="0" border="0"
align="center">
<tr>
<td>
<img alt="abc" src="${file}">
</td>
</tr>
</table>
</body>
- 大小: 25.9 KB
分享到:
相关推荐
在"JFreeChart示例"中,我们将会深入探讨如何利用 JFreeChart 创建这些图表,并以Web方式展示它们。 首先,JFreeChart 的核心在于它的灵活性和易用性。开发者可以通过简单的 API 调用来构建复杂的图表,调整颜色、...
8. **Swing和Web应用**:JFreeChart不仅适用于桌面应用(通过Swing),还可以与Servlet和JSP配合,生成图表并在Web应用中显示。 在"study.JFreeChart.demo"中,你可以找到如何实例化这些图表、配置它们的组件以及...
这个“JFreeChart封装示例”提供了如何在Java应用程序中有效利用JFreeChart库的简单指导。下面我们将深入探讨JFreeChart的核心功能以及如何在项目中实现这些功能。 1. **JFreeChart简介** JFreeChart是一个开源...
在提供的压缩包中,"JFreeChart"很可能包含了JFreeChart库的源码、示例代码和必要的依赖。这些资源可以帮助开发者深入理解JFreeChart的工作原理,以及如何在自己的Java项目中有效地利用它。通过仔细研究和实验这些...
4. **集成到Web应用**:提供示例代码,展示如何在Servlet或JSP页面中处理图像流并将其发送给客户端。 5. **交互性增强**:讨论如何通过JavaScript或AJAX实现图表的动态更新和用户交互,如点击事件、数据过滤等。 6. ...
以上就是基于JFreeChart的学习示例,涵盖了基本的图表创建、数据绑定、数据库交互以及在Java Web环境中的应用。通过实践这些示例,你将能够熟练掌握JFreeChart的使用,提升你的数据可视化能力。
JFreeChart是一个开源项目,广泛应用于Java应用程序、Web应用、报表和数据可视化中。它提供了丰富的图表类型,并支持自定义颜色、字体、标签以及数据呈现方式。 2. **主要图表类型** - **折线图(Line Chart)**...
而对于Web应用,如基于Tomcat的项目,应将这三个库文件放置于项目的`WEB-INF\LIB`目录下,并在`web.xml`中注册servlet,如下所示: ```xml <servlet-name>DisplayChart <servlet-class>org.jfree.chart.servlet....
通过阅读和理解这些示例,你可以更深入地了解如何将 JFreeChart 集成到你的 Web 应用中,创建出各种各样的动态图表,提升数据可视化的质量和用户体验。 总结来说,JFreeChart 是 Java 开发者用于创建高质量图表的...
// 配置示例(web.xml) <servlet-name>ChartImageServlet <servlet-class>org.jfree.chart.servlet.ChartImageServlet <servlet-name>ChartImageServlet <url-pattern>/chart ``` 然后,在HTML页面中通过...
"JFreeChartWebDemo"是展示如何在Web环境中利用JFreeChart生成图表的一个示例工程。这个项目可能包含了HTML、Servlet或JSP文件,以及Java代码,它们共同协作将JFreeChart生成的图表以图像的形式在网页上展示出来。...
本项目"JFreeChart Web例子"提供了一系列示例,涵盖了JFreeChart在Web环境中的各种用法。 首先,我们要了解JFreeChart的基本概念。JFreeChart是一个开源项目,它提供了丰富的API,使得开发者能够方便地生成静态和...
- 仪表盘开发:在企业级应用或Web应用的仪表盘中,JFreeChart可以用来展示关键性能指标。 - 教育和演示:教学材料或技术演示中,使用JFreeChart制作图表能直观地解释概念。 总之,JFreeChart是Java开发者手中的一...
**JFreeChart 示例代码封装成 JSP 标签** JFreeChart 是一个强大的 Java 图表库,它提供了各种类型的图表,如柱状图、饼图、线形图、散点图等,适用于报告、数据分析和可视化应用。在这个项目中,开发者已经将 ...
### 基于jfreechart-1.0.6的WEB图表开发示例 #### 一、概述 本文档旨在介绍如何使用jfreechart-1.0.6版本进行Web图表开发,帮助开发者掌握基本及高级图表绘制技巧。JFreeChart是一款强大的开源Java图表库,适用于...
**JFreeChart 示例详解** JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图、甘特图等,广泛应用于数据分析和可视化展示。这个压缩包文件包含了一些...
在这个“web工程jFreeChart展示导出折线图”的项目中,我们将探讨如何在IDEA Maven环境下利用JFreeChart生成折线图并在前端展示,以及如何实现图表的导出功能。 ### 1. JFreeChart简介 JFreeChart是一个开源的Java...
2. **Web 示例**:可能包括在 JavaServer Pages (JSP) 或 Servlets 中使用 JFreeChart 的例子。这些示例可能涉及到如何将图表导出为图像文件,然后在网页上显示,或者通过 AJAX 实现动态更新。 3. **数据源和序列化...
在Java Web开发中,尤其是在Servlet环境下,JFreeChart 可以帮助开发者在网页上生成各种数据可视化展示,便于用户理解和分析数据。 **一、JFreeChart 概述** 1. **安装与导入**:JFreeChart 通常以 jar 包的形式...
用户可以下载这个压缩包,通过阅读源码、运行示例来学习如何从数据库中提取数据,并利用JFreeChart在Web页面上展示这些数据的可视化图表。这有助于提升Web应用的数据展示效果,使得数据分析和决策更为直观和高效。