- 浏览: 122058 次
文章分类
最新评论
struts2整合jfreechart时柱状图出现不能显示数值问题,主要是由于数值过大,超过柱子宽度,所以就不显示了。
解决办法:
调整下面3处的数值
构建图标类中
BarRenderer3D custombarrenderer3d=new BarRenderer3D();
a处、 custombarrenderer3d.setMaximumBarWidth(0.06);
b处、 custombarrenderer3d.setItemMargin(0.0000005);
struts 配置文件中
<param name="width">1300</param> 调节宽度
下面附一个简单的例子
创建图表的类 通过getChart得到图表
/**
* FruitService.java
* com.lin.jfreecahrt
* zlj
* Jul 19, 2012
*
*/
package com.lin.jfreecahrt;
import java.awt.Color;
import java.awt.Font;
import java.util.EventObject;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.renderer.category.LayeredBarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.TextAnchor;
/*
* java.awt.Font,
org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.data.CategoryDataset,
org.jfree.data.DatasetUtilities,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.CategoryAxis,
org.jfree.chart.axis.ValueAxis,
org.jfree.chart.renderer.BarRenderer3D,
org.jfree.chart.labels.StandardCategoryItemLabelGenerator,
org.jfree.chart.axis.AxisLocation
*/
/**
* Class FruitService
* @author zlj
* @version
* @Date Jul 19, 2012 3:19:50 PM
*/
public class FruitService {
private JFreeChart chart=null;
/**
*
*/
public FruitService(){
}
public DefaultCategoryDataset getDataSet(){
DefaultCategoryDataset date=new DefaultCategoryDataset ();
date.addValue(700000, "一月", "java编程思想");
date.addValue(700000, "一月", "java核心技术");
date.addValue(700000, "一月", "设计模式");
date.addValue(900000, "二月", "java编程思想");
date.addValue(900000, "二月", "java核心技术");
date.addValue(900000, "二月", "设计模式");
date.addValue(1100000, "三月", "java编程思想");
date.addValue(1100000, "三月", "java核心技术");
date.addValue(1100000, "三月", "设计模式");
/*
date.addValue(1000, "四月", "java编程思想");
date.addValue(1000, "四月", "java核心技术");
date.addValue(1000, "四月", "设计模式");
date.addValue(800, "五月", "java编程思想");
date.addValue(800, "五月", "java核心技术");
date.addValue(800, "五月", "设计模式");*/
return date;
}
public JFreeChart getChart() {
// CategoryDataset data=getDataSet();
chart=ChartFactory.createBarChart3D(
"图书销量图表", //图标标题
"月份",//x轴变量显示名称
"销量", //y轴变量显示名称
getDataSet(), //要显示的数据
PlotOrientation.VERTICAL,//显示方向 水平、垂直
true,// 是否显示图例(对于简单的柱状图必须是false)
false,//是否生成工具
false//是否生成url
);
BarRenderer3D custombarrenderer3d=new BarRenderer3D();
custombarrenderer3d.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());//显示每个柱的数值
custombarrenderer3d.setBaseItemLabelsVisible(true);
//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
custombarrenderer3d.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
custombarrenderer3d.setItemLabelAnchorOffset(10D);// 设置柱形图上的文字偏离值
custombarrenderer3d.setItemLabelsVisible(true);
custombarrenderer3d.setBaseItemLabelPaint(Color.BLUE);// 设置数值色彩,默认黑色
custombarrenderer3d.setMaximumBarWidth(0.06);
custombarrenderer3d.setItemMargin(0.0000005);
/*chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();
//CategoryAxis domainAxis = plot.getDomainAxis();
// domainAxis.setv
//((Object) domainAxis).setVerticalCategoryLabels(false);
// plot.setDomainAxis(domainAxis);
ValueAxis rangeAxis = plot.getRangeAxis();
//设置最高的一个 Item 与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
//设置最低的一个 Item 与图片底端的距离
rangeAxis.setLowerMargin(0.15);
plot.setRangeAxis(rangeAxis);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
//设置每种水果代表的柱的颜色
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(0, 100, 255));
renderer.setSeriesPaint(2, Color.GREEN);
//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
//显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
plot.setRenderer(renderer);
//设置柱的透明度
plot.setForegroundAlpha(0.6f);
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);*/
//设置柱子显示值
//renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//renderer.setBaseItemLabelsVisible(true);
//BarRenderer custombarrenderer3d3d = new BarRenderer();
//custombarrenderer3d3d.setBaseItemLabelPaint(Color.RED);//数据字体的颜色
//custombarrenderer3d3d.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
//custombarrenderer3d3d.setBaseItemLabelsVisible(true);
/*custombarrenderer3d.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
custombarrenderer3d.setItemLabelFont(new Font("黑体",Font.BOLD,12));
custombarrenderer3d.setItemLabelAnchorOffset(1);
custombarrenderer3d.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
custombarrenderer3d.setItemLabelsVisible(true);*/
CategoryPlot plot = chart.getCategoryPlot();
plot.setForegroundAlpha(0.6f);
plot.setRenderer(custombarrenderer3d);
return chart;
}
public void setChart(JFreeChart chart) {
this.chart = chart;
}
}
处理图表的action
/**
* JFreeChartAction.java
* com.lin.action
* zlj
* Jul 19, 2012
*
*/
package com.lin.action;
import org.jfree.chart.JFreeChart;
import com.lin.jfreecahrt.ChartService;
import com.lin.jfreecahrt.FruitService;
import com.opensymphony.xwork2.ActionSupport;
/**
* Class JFreeChartAction
* @author zlj
* @version
* @Date Jul 19, 2012 5:01:34 PM
*/
public class JFreeChartAction extends ActionSupport{
private JFreeChart chart;
@Override
public String execute(){
FruitService fs=new FruitService();
chart=fs.getChart();
return SUCCESS;
}
public JFreeChart getChart() {
return chart;
}
public void setChart(JFreeChart chart) {
this.chart = chart;
}
}
struts.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="deModel" value="true"></constant>
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.ui.templateDir" value="template" />
<package name="mytest" extends="struts-default,jfreechart-default">
<action name="createXml" class="com.lin.action.CreateXmlAction">
<result name="success">/index.jsp</result>
</action>
<action name="url" class="com.lin.action.UrlAction">
<result name="success">/test.jsp</result>
<result name="list">/test.jsp</result>
<result name="edit">/test.jsp</result>
</action>
<action name="freeMaker" class="com.lin.action.HelloFreeMaker">
<result name="success" type="freemarker">/WEB-INF/templates/test.ftl</result>
</action>
<action name="jfreechart" class="com.lin.action.JFreeChartAction">
<result name="success" type="chart">
<param name="height">600</param>
<param name="width">1300</param>
</result>
</action>
</package>
</struts>
jsp引用页面 chart.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'chart.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>
<img src="jfreechart.action" />
</body>
</html>
自己导入相应的jar就可以了
发表评论
-
查找maven依赖的地址
2014-02-12 19:33 1147http://search.maven.org/ -
jquery validate 校验的漏洞
2013-09-30 15:10 1201使用jquery validate 遇到的问题 “在 ... -
Jquery validate 对于多个同名控件的处理
2013-09-27 16:55 2301对于多个同名的控件如: <input type='n ... -
多选下拉框实现
2013-09-03 15:38 73299html中有自带的多选下拉框,只要设置select的mul ... -
jquery validate 使用
2013-04-09 10:32 1076$(function(){ //开启隐藏域检测(validat ... -
(转载)获取项目的路径
2013-02-06 10:26 1089(转载)获取项目的路径 ... -
Jquery validate框架学习
2012-10-16 17:02 1459(一)、可选项( options ) [1] deb ... -
jsp乱码
2012-08-30 16:59 930在tomcat的web.xml 中<web-app> ... -
解决链接方式传递中文参数乱码问题
2012-08-02 13:28 1098所谓的链接方式传递中文参数就是 使用<a> 标签传 ... -
freemaaker 基本语法测试整理
2012-07-19 12:21 1034测试类 /** * HelloFreeMaker.j ... -
整理 jquery 操作表格 增、删、上下移动、统计、排序
2012-07-18 16:30 1428<!DOCTYPE HTML PUBLIC " ...
相关推荐
Struts2+JFreeChart 柱状图Demo是一个典型的Java Web应用程序,它结合了Struts2框架、JFreeChart库以及可能的数据存储系统(如MySQL或Oracle),用于动态生成柱状图表。这个Demo旨在展示如何在实际项目中集成这些...
JFreeChart则是一个强大的Java图表库,可以生成多种类型的图表,如柱状图、饼图、线图等,非常适合在报表系统中展示数据。当我们需要在Struts2框架下实现报表功能时,就需要将这两者进行整合。 首先,整合Struts2和...
当我们需要在Struts2应用中展示数据时,整合JFreeChart能够帮助我们生成交互式且美观的图表。 首先,让我们深入了解一下Struts2框架。Struts2基于MVC(Model-View-Controller)设计模式,它将业务逻辑、视图和控制...
Struts2是一个基于MVC设计模式的Web应用框架,用于构建动态、数据驱动的Java Web应用,而JFreeChart则是一个强大的图表生成库,可以生成各种类型的图表,如柱状图、饼图、线图等,广泛应用于数据分析和展示。...
struts2整合JFreechart: jcommon-1.0.16.jar jfreechart-1.0.13.jar struts2-jfreechart-plugin-2.0.11.jar 导成图片操作说明
java+jfreechart+struts 生成柱状图 java jfreechart 柱状图 java jfreechart 柱状图 谁需要完整项目可以去http://download.csdn.net/source/2665347
在Struts2框架中集成JFreeChart库,可以方便地创建各种图表,如饼状图、柱状图和折线图,为数据分析和可视化提供便利。 JFreeChart是一个开源的Java类库,用于生成高质量的统计和财务图表。它支持多种图表类型,...
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
Struts2和JFreeChart是两个在Java Web开发中广泛使用的开源库。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性极高的Web应用程序,而JFreeChart则是一个用于生成高质量图表的...
JFreeChart则是一个强大的Java库,用于创建各种类型的图表,如饼图、线图、柱状图等。本实例将讲解如何在Struts2框架中整合JFreeChart,以实现动态生成图表的功能。 首先,确保你已经安装了Struts2框架,并且在项目...
总的来说,Struts2与JFreeChart的整合是Java Web开发中常见的需求,它可以帮助我们创建交互式的、数据驱动的图表应用。通过理解JFreeChart的图表生成原理,掌握Struts2的Action和结果类型,以及熟悉Web应用的图像...
整合Struts2和JFreeChart,主要是为了在web应用中展示动态生成的数据图表,例如报表。以下是整合的步骤和关键知识点: 1. **下载和引入JFreeChart库**: 首先,你需要从JFreeChart的官方网站...
Struts2 框架与 JFreeChart 的整合允许开发者在 Web 应用程序中创建交互式的图表,如饼图、柱状图等。JFreeChart 是一个强大的 Java 图表库,可以生成高质量的静态图表,而 Struts2 则是用于构建 MVC(模型-视图-...
整合Struts2和JFreeChart,可以让我们在web应用中方便地创建动态统计图表。下面将详细介绍这个整合过程以及相关的知识点。 1. **JFreeChart基础**: - JFreeChart库提供了丰富的图表类型,包括时间序列图、饼图、...
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart
Struts2应用开发系列Struts2整合JFreeChart