a.jsp
代码:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<%@ page language="java"
import="org.jfree.chart.*,org.jfree.data.general.DefaultPieDataset,org.jfree.chart.plot.PiePlot3D,java.awt.Font,org.jfree.chart.JFreeChart,org.jfree.chart.title.TextTitle,org.jfree.chart.title.LegendTitle,org.jfree.chart.labels.StandardPieToolTipGenerator,org.jfree.chart.urls.StandardPieURLGenerator,org.jfree.chart.entity.StandardEntityCollection,java.io.PrintWriter,org.jfree.chart.servlet.ServletUtilities"
pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'a.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<%
DefaultPieDataset data = new DefaultPieDataset();
data.setValue("Spring2.0宝典", 47000);
data.setValue("轻量级J2EE企业应用实战", 38000);
data.setValue("基于J2EE的Ajax宝典", 31000);
data.setValue("Ajax in Action", 25000);
data.setValue("JavaScript权威指南", 29000);
PiePlot3D plot = new PiePlot3D(data);
plot.setLabelFont(new Font("隶书", Font.BOLD, 16));
JFreeChart chart = new JFreeChart("",
JFreeChart.DEFAULT_TITLE_FONT, plot, true);
chart.setTitle(new TextTitle("图书销量统计图", new Font("黑体", Font.ITALIC,
22)));
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(new Font("宋体", Font.BOLD,18));
plot.setToolTipGenerator(new StandardPieToolTipGenerator());
plot.setURLGenerator(new StandardPieURLGenerator("jfreechart/b.jsp"));
StandardEntityCollection entityCollection = new StandardEntityCollection();
ChartRenderingInfo info = new ChartRenderingInfo(entityCollection);
PrintWriter pw = new PrintWriter(out);
String filename = ServletUtilities.saveChartAsPNG(chart, 720, 450,
info, null);
ChartUtilities.writeImageMap(pw, "map0", info, false);
%>
<body>
<img src="DisplayChart?filename=<%=filename%>" width="720"
height="450" usemap="#map0" />
</body>
</html>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
b.jsp
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
b.jsp
代码:
<%@ page language="java"
import="org.jfree.chart.*,java.awt.Font,org.jfree.chart.JFreeChart,org.jfree.chart.title.TextTitle,org.jfree.chart.title.LegendTitle,org.jfree.chart.servlet.ServletUtilities,org.jfree.chart.plot.PlotOrientation,org.jfree.chart.plot.CategoryPlot,org.jfree.chart.axis.NumberAxis,org.jfree.chart.axis.CategoryAxis,org.jfree.chart.axis.CategoryLabelPositions,org.jfree.data.category.CategoryDataset,org.jfree.data.category.DefaultCategoryDataset"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'b.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
CategoryDataset dataset;
String queryString = request.getQueryString();
queryString = java.net.URLDecoder.decode(queryString, "UTF-8");
String category = null;
String[] queryStrings=queryString.split("&");
for (int i = 0; i < queryStrings.length; i++) {
String[] nameValue = queryStrings[i].split("=");
category = nameValue[0].equals("category") ? nameValue[1]
: category;
}
String subTitle = "";
if (category.equals("Spring2.0宝典")
|| category.equals("轻量级J2EE企业应用实战")
|| category.equals("基于J2EE的Ajax宝典")) {
dataset = leeGetDataSet();
subTitle = "作者李刚的";
} else {
dataset = getDataSet();
subTitle = "其它";
}
String title = subTitle + "图书的销售情况";
JFreeChart chart = ChartFactory.createBarChart3D(title, "月份", "销量",
dataset, PlotOrientation.VERTICAL, true, false, false);
chart.setTitle(new TextTitle(title, new Font("黑体", Font.ITALIC,
22)));
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(new Font("宋体", Font.BOLD, 20));//设置图例的字体
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis categoryAxis = plot.getDomainAxis();//取得横轴
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));//设置横轴显示标签的字体
categoryAxis
.setCategoryLabelPositions(CategoryLabelPositions.UP_45);//分类标签以45度倾斜
categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));//分类标签字体
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();//取得纵轴
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
String filename = ServletUtilities.saveChartAsPNG(chart, 650, 390,
null, session);
%>
<img src="DisplayChart?filename=<%=filename%>" width="720"
height="450" border="0" />
</body>
<%!private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(47000, "Ajax in Action", "06年10月");
dataset.addValue(38000, "Ajax in Action", "06年11月");
dataset.addValue(31000, "Ajax in Action", "06年12月");
dataset.addValue(25000, "Ajax in Action", "07年01月");
dataset.addValue(45000, "Ajax in Action", "07年02月");
dataset.addValue(28000, "Ajax in Action", "07年03月");
dataset.addValue(42000, "JavaScript权威指南", "06年10月");
dataset.addValue(31000, "JavaScript权威指南", "06年11月");
dataset.addValue(41000, "JavaScript权威指南", "06年12月");
dataset.addValue(35000, "JavaScript权威指南", "07年01月");
dataset.addValue(25000, "JavaScript权威指南", "07年02月");
dataset.addValue(18000, "JavaScript权威指南", "07年03月");
return dataset;
}
private static CategoryDataset leeGetDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(42000, "Spring2.0宝典", "06年10月");
dataset.addValue(18000, "Spring2.0宝典", "06年11月");
dataset.addValue(51000, "Spring2.0宝典", "06年12月");
dataset.addValue(25000, "Spring2.0宝典", "07年01月");
dataset.addValue(35000, "Spring2.0宝典", "07年02月");
dataset.addValue(26000, "Spring2.0宝典", "07年03月");
dataset.addValue(47000, "轻量级J2EE企业应用实战", "06年10月");
dataset.addValue(38000, "轻量级J2EE企业应用实战", "06年11月");
dataset.addValue(31000, "轻量级J2EE企业应用实战", "06年12月");
dataset.addValue(25000, "轻量级J2EE企业应用实战", "07年01月");
dataset.addValue(25000, "轻量级J2EE企业应用实战", "07年02月");
dataset.addValue(25000, "轻量级J2EE企业应用实战", "07年03月");
dataset.addValue(43000, "基于J2EE的Ajax宝典", "06年10月");
dataset.addValue(28000, "基于J2EE的Ajax宝典", "06年11月");
dataset.addValue(37000, "基于J2EE的Ajax宝典", "06年12月");
dataset.addValue(20000, "基于J2EE的Ajax宝典", "07年01月");
dataset.addValue(35000, "基于J2EE的Ajax宝典", "07年02月");
dataset.addValue(15000, "基于J2EE的Ajax宝典", "07年03月");
return dataset;
}%>
</html>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
web.xml
代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
</web-app>
分享到:
相关推荐
JFreeChart库本身并不直接提供高度定制的图例功能,但通过扩展其API,我们可以创建自己的图例行为。下面是一些关于如何自定义JFreeChart图例的关键知识点: 1. **创建自定义图例项**: JFreeChart允许你为每个图表...
以上就是在JavaFX中使用JFreeChart生成图表的基本流程。为了使图表更具交互性,还可以添加事件监听器,如点击图表元素时触发特定操作。此外,JFreeChart提供了丰富的配置选项,可以调整图表的外观,如颜色、线条样式...
此外,这个服务类可能还涉及数据加载、转换和存储,以及处理用户交互,比如根据用户请求动态生成新的图表。 总之,JFreeChart是Java开发中强大的图表生成工具,通过`CreateChartServiceImpl.java`这样的服务类,...
接下来,我们详细探讨如何使用JFreeChart生成各种类型的图表: 1. **柱状图(Bar Chart)**:柱状图常用于比较不同类别的数据。使用JFreeChart创建柱状图,首先需要创建一个CategoryDataset,然后用这个数据集来...
在"struts2+MySQL+jfreechart生成带热点"的场景中,我们可以构建一个Web应用,该应用能够从MySQL数据库中检索数据,然后使用JFreeChart生成包含热点的图表。热点是指图表上的区域,当用户点击这些区域时,可以触发...
对于图表,可以将之前用JFreeChart生成的PNG图片作为`Image`对象添加。 5. **关闭文档**: 最后,记得调用`Document.close()`方法关闭文档,确保所有内容都被写入。 在实际应用中,你可能需要根据用户请求动态生成...
在使用 jFreeChart 生成统计图表时,首先需要将 jfreechart.jar 和 jcommon.jar 添加到项目的类路径中。这两个 JAR 文件包含了所有必要的类和资源,使得你可以轻松地在 Java 应用程序中集成图表功能。 例如,要创建...
虽然在本案例中,我们没有直接涉及BIRT,但在大型项目中,JFreeChart生成的图表可能会被嵌入到BIRT报告中,以提供更高级别的数据可视化。 总的来说,掌握JFreeChart画双Y轴折线图的能力,意味着你可以更有效地展示...
#### 1.1 标题:“jfreechart生成单组3D变色柱状图” 标题明确指出本篇教程的目标是使用JFreeChart库生成一种特定类型的图表——3D变色单组柱状图。这里的关键信息包括: - **jfreechart**:一个Java图形绘制类库。...
Java 使用 JFreeChart 创建柱形图是一种常见的数据可视化方法,尤其在数据分析和Web应用程序中。JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化...
在实际开发中,JFreeChart可以与Swing、JavaFX等图形用户界面库结合,生成交互式的图表,用户可以通过点击、缩放等操作来探索数据。此外,JFreeChart还可以导出图表为图片文件(如PNG、JPEG),以便在报告或网页中...
以上就是使用Java JFreeChart库在后台生成折线图的基本流程。饼图和柱状图的生成原理类似,只需替换相应的`ChartFactory`方法(如`createPieChart()`或`createBarChart()`),并调整数据集的结构以适应不同图表的...
例如,`jquery.jqplot.js` 是一个基于 JQuery 的图表库,它可以与 JFreeChart 生成的折线图数据相结合,实现动态更新、缩放、平移等功能。 5. **相关库的使用** - **jQuery**: 一个流行的 JavaScript 库,简化了 ...
Java统计图生成库JFreeChart是一个强大的开源工具,专为Java开发者设计,用于创建各种复杂的图表,如柱状图、饼图和折线图。它提供了丰富的功能和灵活性,使得在应用程序中集成可视化数据变得非常容易,而无需深入...
**生成 JFreeChart 报表** 在Java编程中,生成美观且功能丰富的图表是一项重要的任务,特别是在数据分析和可视化领域。JFreeChart库是Java社区中广泛使用的开源图表库,它提供了一种简单而强大的方式来创建各种类型...
为了在Web上展示JFreeChart生成的图表,我们需要一个容器来承载这些图片。这可以是HTML的`<img>`标签,或者是使用`<iframe>`或者JavaScript来加载。确保正确设置图表的大小,以适应不同的设备和屏幕尺寸。 集成...
除了基本的图表功能,JFreeChart 还可用于创建复杂的统计图和金融图表,如甘特图、箱线图、热力图等。 总的来说,JFreeChart 为 Java 开发者提供了一套强大且灵活的工具,用于创建各种类型的图表,无论是简单的...
1. **使用JFreeChart生成图表**:根据业务需求,利用JFreeChart API创建所需的图表对象。 2. **配置Cewolf**:在Web应用的部署描述符(如web.xml)中添加Cewolf Servlet的配置信息。 3. **发送请求**:当用户请求...
在Java应用程序或Web应用中,如果你需要生成高质量的图表,JFreeChart是一个值得信赖的选择。在使用JFreeChart时,通常会依赖两个核心的jar文件:`jfreechart.jar`和`jcommon.jar`。 1. `jfreechart.jar`: 这是...
**JFreeChart 使用详解** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如折线图、...理解这些库的功能和交互方式,能让你更好地利用 JFreeChart 实现数据可视化的需求。