`

JFreeChart 学习(2)-struts2+maven3

阅读更多
该资源均来自网络,稍作了整理,以便查询

开发环境:
eclipse Java EE IDE luna
struts2.3.20
maven3.2.5

pom.xml文件依赖配置
	<properties>
		<struts.version>2.3.20</struts.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.0.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>${struts.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-jfreechart-plugin</artifactId>
			<version>${struts.version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.7</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>jfree</groupId>
			<artifactId>jfreechart</artifactId>
			<version>1.0.13</version>
		</dependency>



web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="i5ss" version="2.5">
	<display-name>Archetype Created Web Application</display-name>
	<filter>
		<filter-name>struts-prepare</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
	</filter>
	<filter>
		<filter-name>struts-execute</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts-prepare</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>struts-execute</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>


struts.xml配置
	<package name="jfreechar" namespace="/jfreechart" extends="jfreechart-default">
		<action name="pieChart3DAction" class="com.ouanui.PieChart3DAction">
			<result type="chart">
				<param name="width">700</param>
				<param name="height">400</param>
			</result>
		</action>
		<action name="lineChartAction" class="com.ouanui.LineChartAction">
			<result type="chart">
				<param name="width">700</param>
				<param name="height">400</param>
			</result>
		</action>
		<action name="barChart3DAction" class="com.ouanui.BarChart3DAction">
			<result type="chart">
				<param name="width">700</param>
				<param name="height">400</param>
			</result>
		</action>
	</package>


相关类:
package com.ouanui;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

import com.opensymphony.xwork2.ActionSupport;

public class BarChart3DAction extends ActionSupport {
	private static final long serialVersionUID = -493282687582801540L;
	private JFreeChart chart;

	public JFreeChart getChart() {
		chart = ChartFactory.createBarChart3D("学生成绩分析", "成绩", "人数", getDataset(),
				PlotOrientation.VERTICAL, true, false, false);

		chart.setTitle(new TextTitle("学生成绩分析", new Font("黑体", Font.ITALIC, 22)));

		LegendTitle legend = chart.getLegend();

		// 修改图例的字体
		legend.setItemFont(new Font("宋体", Font.ITALIC, 14));
		CategoryPlot plot = (CategoryPlot) chart.getPlot();

		// 取得横轴
		CategoryAxis categoryAxis = plot.getDomainAxis();
		categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

		// 分类标签以45度角倾斜
		categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
		categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 22));

		// 取得纵轴
		NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
		numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

		return chart;
	}

	/**
	 * 
	 * @return
	 */

	private CategoryDataset getDataset() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(2, "1班", "不及格");
		dataset.addValue(4, "2班", "不及格");
		dataset.addValue(5, "3班", "不及格");
		dataset.addValue(8, "1班", "及格");
		dataset.addValue(5, "2班", "及格");
		dataset.addValue(10, "3班", "及格");
		dataset.addValue(15, "1班", "中等");
		dataset.addValue(10, "2班", "中等");
		dataset.addValue(10, "3班", "中等");
		dataset.addValue(15, "1班", "良好");
		dataset.addValue(15, "2班", "良好");
		dataset.addValue(15, "3班", "良好");
		dataset.addValue(5, "1班", "优秀");
		dataset.addValue(5, "2班", "优秀");
		dataset.addValue(5, "3班", "优秀");
		return dataset;

	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}
}


package com.ouanui;

import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

import com.opensymphony.xwork2.ActionSupport;

public class LineChartAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	private JFreeChart chart;

	public JFreeChart getChart() {

		// title:
		// timeAxisLabel:
		// valueAxisLabel
		// dataset
		// legend:如果设置为 false,则在jsp页面不展示
		// tooltips
		// urls
		chart = ChartFactory.createTimeSeriesChart("水果销量统计图", "水果", "销量", getDataSet(), true,
				false, false);

		// 重新设置图标标题,改变字体
		chart.setTitle(new TextTitle("水果销量统计图", new Font("黑体", Font.ITALIC, 22)));

		// 取得统计图标的第一个图例
		LegendTitle legend = chart.getLegend(0);

		// 修改图例的字体
		legend.setItemFont(new Font("宋体", Font.BOLD, 14));

		XYPlot plot = (XYPlot) chart.getPlot();

		// 取得横轴
		ValueAxis categoryAxis = plot.getDomainAxis();

		// 设置横轴显示标签的字体
		categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

		// x轴坐标样式
		categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 10));

		// 取得纵轴
		NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();

		// 设置纵轴显示标签的字体
		numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));

		// // 显示y轴0值
		// numberAxis.setAutoRangeIncludesZero(true);

		// 设置y轴取值范围
		numberAxis.setRange(0, 5000);

		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}

	// 返回一个CategoryDataset实例
	private static XYDataset getDataSet() {
		TimeSeries apple = new TimeSeries("苹果", null, null);
		apple.add(new Month(10, 2007), 3900);
		apple.add(new Month(11, 2007), 900);
		apple.add(new Month(12, 2007), 2500);
		apple.add(new Month(1, 2008), 3900);
		apple.add(new Month(2, 2008), 2000);
		apple.add(new Month(3, 2008), 3300);

		TimeSeries orange = new TimeSeries("桔子", null, null);
		orange.add(new Month(10, 2007), 3300);
		orange.add(new Month(11, 2007), 2680);
		orange.add(new Month(12, 2007), 2000);
		orange.add(new Month(1, 2008), 1900);
		orange.add(new Month(2, 2008), 2000);
		orange.add(new Month(3, 2008), 2300);

		TimeSeriesCollection dataset = new TimeSeriesCollection();
		dataset.addSeries(apple);
		dataset.addSeries(orange);

		return dataset;
	}
}


package com.ouanui;

import java.awt.Font;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

import com.opensymphony.xwork2.ActionSupport;

public class PieChart3DAction extends ActionSupport {

	private static final long serialVersionUID = 2375583709245146510L;
	private JFreeChart chart;

	public JFreeChart getChart() {
		chart = ChartFactory.createPieChart3D("学生成绩分析", getDataset(), true, false, false);
		chart.setTitle(new TextTitle("学生成绩分析", new Font("黑体", Font.ITALIC, 22)));
		LegendTitle legend = chart.getLegend();
		legend.setItemFont(new Font("宋体", Font.ITALIC, 14));
		PiePlot3D plot = (PiePlot3D) chart.getPlot();
		plot.setLabelFont(new Font("隶书", Font.ITALIC, 18));

		// 设定背景透明度(0-1.0之间)
		plot.setBackgroundAlpha(0.9f);

		// 设定前景透明度(0-1.0之间)
		plot.setForegroundAlpha(0.50f);

		String unitStyle = "{0}={1}({2})";

		// 设置图例显示样式
		plot.setLabelGenerator(new StandardPieSectionLabelGenerator(unitStyle,

		NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

		// 设置引用标签显示样式
		plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(unitStyle, NumberFormat
				.getNumberInstance(), new DecimalFormat("0.00%")));

		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}

	private DefaultPieDataset getDataset() {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("不及格", 2);
		dataset.setValue("及格", 8);
		dataset.setValue("中等", 15);
		dataset.setValue("良好", 15);
		dataset.setValue("优秀", 5);
		dataset.setValue("优秀1", 5);
		return dataset;
	}
}


jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<img alt="" src="jfreechart/pieChart3DAction" style="margin: auto;">
	<br />
	<img alt="" src="jfreechart/lineChartAction" style="margin: auto;">
	<br />
	<img alt="" src="jfreechart/barChart3DAction" style="margin: auto;">
	<br />
</body>
</html>
分享到:
评论

相关推荐

    文档管理系统java'源码-Struts2-Spring-Hibernate:Struts2+Spring+Hibernate+Maven

    java'源码Struts2.3+Spring3+Hibernate4 框架和工具 Java&IDE:JDK7 Eclipse MyEclipse 后端:Struts2.3.16 Spring3.2.8 Hibernate4.2.11(注解配置) 前端:JQuery-EasyUI1.3.1 Javascript JQuery Ajax 数据库:...

    JFreeChart+Struts2实践例子

    首先,在项目中添加JFreeChart和Struts2的依赖库,这通常通过Maven或Gradle来完成。接着,配置Struts2的Action类,使得它能够处理图表生成的请求。 第一种实践方法是创建静态图表。在Action类中,使用JFreeChart ...

    Struts2+JFreeChart+饼状图,柱状图,折线图

    在Struts2框架中集成JFreeChart库,可以方便地创建各种图表,如饼状图、柱状图和折线图,为数据分析和可视化提供便利。 JFreeChart是一个开源的Java类库,用于生成高质量的统计和财务图表。它支持多种图表类型,...

    struts2 jfreechart使用的jar包

    3. **Struts2的JFreeChart插件**:Struts2社区为JFreeChart创建了专门的插件,简化了在Action中使用JFreeChart的过程。这个插件的jar包名字可能类似于`struts2-jfreechart-plugin-*.jar`。 4. **其他依赖**:根据...

    struts2整合 jfreechart 实现报表

    首先,整合Struts2和JFreeChart的首要步骤是确保在项目中引入JFreeChart和相关依赖。你需要在你的Maven或Gradle配置文件中添加JFreeChart的依赖,通常为以下形式: ```xml &lt;groupId&gt;org.jfree &lt;artifactId&gt;...

    jfreechart和struts2的例子

    **JFreeChart与Struts2整合应用详解** 在Java Web开发中,JFreeChart和Struts2是两个非常重要的库。JFreeChart是一个强大的图表生成库,能够创建各种类型的图表,如柱状图、饼图、线图等,用于数据可视化。而Struts...

    struts2整合JFreechart的几个组件

    3. **struts2-jfreechart-plugin**:这是一个Struts2的插件,专门用于整合JFreeChart。它提供了一组Action和Result类型,使得在Struts2应用中生成和显示JFreeChart图表变得非常便捷。开发者可以通过配置Struts2的XML...

    Spring+Struts+JFreeChart 自动生成统计图

    标题“Spring+Struts+JFreeChart 自动生成统计图”揭示了一个使用Java技术栈构建的数据可视化应用。这个应用结合了Spring框架、Struts框架以及JFreeChart库,来动态生成统计图表。下面将详细阐述这三个核心组件及其...

    struts2整合jfreechart代码

    将JFreeChart与Struts2整合,可以方便地在Web应用中展示动态生成的图表,为用户提供直观的数据表示。 整合JFreeChart和Struts2的过程主要包括以下几个步骤: 1. **添加依赖**:首先,在项目的类路径中需要包含...

    Struts2 与JFreeChart结合使用实例

    结合Struts2和JFreeChart,开发者可以创建交互式、数据丰富的Web应用,将后台处理的数据以图形方式展示给用户,提升用户体验。下面我们将深入探讨如何在Struts2框架中集成JFreeChart,并通过一个实际的运行实例来...

    在struts2中使用JFreeChart

    1. **添加依赖**:在项目的Maven或Gradle配置文件中,我们需要添加JFreeChart、JasperReports以及Struts2的相关依赖。确保这些库版本与你的项目兼容。 2. **创建图表**:使用JFreeChart库,我们可以创建一个Chart...

    Struts2整合JFreeChart图表

    整合Struts2与JFreeChart,可以将JFreeChart生成的图表无缝地集成到Web应用中,为用户提供直观的数据展示。以下是如何实现这一整合的关键步骤和知识点: 1. **JFreeChart库的引入**:首先,你需要在项目的类路径下...

    Struts2整合JFreeChart 实现柱状图表

    3. **处理响应**:在Struts2 Action中,将生成的图表转换为图像流,这通常通过`ChartUtilities.writeChartAsPNG()`方法实现。将这个流设置为Action的属性,并指定一个Result类型,如"chart",以告诉Struts2如何处理...

    Struts2中使用JfreeChart

    3. **输出图像**:Struts2提供了多种方式将图表输出给客户端。一种常见方法是使用`ChartResult`,这是一个自定义的结果类型,它可以将图表转换为PNG或其他图像格式,并设置响应的Content-Type头。你需要在Action类中...

    jFreeChart资源 及 相关配置 及 帮助文档 及 与struts2整合案例

    本资源包包含了jFreeChart的详细资料,旨在帮助开发者更好地理解和使用这个库,同时提供了与Struts2框架整合的实例。 1. **jFreeChart简介** jFreeChart是一个开源的Java类库,它提供了多种类型的图表,如柱状图、...

    struts2与jfreechart的结合例子源代码有详细说明

    Struts2和JFreeChart是两个在Java Web开发中广泛使用的开源库。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性极强的Web应用程序,而JFreeChart则是一个用于创建高质量图表的库...

    java+struts2实现图表显示

    在Java开发中,Struts2是一个非常流行的MVC框架,用于构建企业级Web应用程序。它提供了丰富的功能,包括动作映射、拦截器、结果类型等,使得...但作为基础,Java+Struts2+JFreeChart已经足够满足大部分静态图表的需求。

    jfreechart与struts2结合,实现折线图、饼状图、柱状图的页面显示

    本文将探讨如何将这两者结合,实现在Struts2应用程序中展示由JFreeChart生成的图表。 首先,JFreeChart提供了丰富的API,使得开发者能够定制各种类型的图表。`Jfreechart中文api.txt`可能包含了JFreeChart API的...

    JFreeChart报表的应用

    3. 使用JFreeChart API创建图表对象,并根据数据填充图表。 4. 将图表保存为图像文件(如PNG或JPEG),使用`ChartUtilities.writeChartAsPNG`方法。 5. 设置Action的返回类型为“stream”,并设置响应头,指示浏览器...

Global site tag (gtag.js) - Google Analytics