jfreechart 整合sturts2牛刀小试

一.增加的jar包

  • struts2-jfreechart-plugin-2.1.6.jar      在struts2的相应jar包中找
  • jcommon-1.0.23.jar                         在jfreechart官网中找
  • jfreechart-1.0.19.jar                         在jfreechart官网中找

jfreechart 的相应jar包地址:http://pan.baidu.com/s/1gfygIob

相应的jsp页面:

<img src="${pageContext.request.contextPath}/jfreechart.action?id=<s:property value="vote.id"/>" />

相应的struts.xml配置:(需要注意的是头文件要改下从箭头中的xml中引入

<package name="jfreechart" extends="jfreechart-default" namespace="/">
        <action name="jfreechart" class="jfreeChartAction">
            <result name="success" type="chart">
                <param name="width">700</param>
                <param name="height">250</param>
            </result>
        </action>
    </package>

相应的action:

package action;

import java.util.List;

import jfreechart.JfreeChartService;

import org.apache.struts2.ServletActionContext;
import org.jfree.chart.JFreeChart;

import service.SelectionService;
import service.VoteService;
import vo.Selection;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings ( "serial" )
public   class  JfreeCharAction  extends  ActionSupport {  

    /**
     * 定 义JFreeChart对象注意在这里JFreeChart对象名只能为chart
     * http://struts.apache.org/2.x/docs/jfreechart-plugin.html
     */
    private  JFreeChart chart;  

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

    private VoteService voteService  ;
    private SelectionService  selectionService ;

    public void setVoteService(VoteService voteService) {
        this.voteService = voteService;
    }
    public void setSelectionService(SelectionService selectionService) {
        this.selectionService = selectionService;
    }

    private JfreeChartService jfreeChartService ;
    public void setJfreeChartService(JfreeChartService jfreeChartService) {
        this.jfreeChartService = jfreeChartService;
    }

    private List<Selection> select_list ;

    @Override
    public  String execute()  throws  Exception {
        Integer id = Integer.valueOf(ServletActionContext.getRequest()
                .getParameter("id"));
        select_list = selectionService.find(id);
        this .chart = jfreeChartService.getChart(select_list);
        return  SUCCESS;
    }
}  

相应的service:
   这里的注意点是很容易出现乱码,改下font就ok

package jfreechart;

import java.awt.Color;
import java.awt.Font;
import java.util.List;

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.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.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.TextAnchor;

import vo.Selection;

public class JfreeChartService {  

    public  JFreeChart getChart(List<Selection> select_list){

        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        for(int i = 0 ; i < select_list.size() ; i ++){

            dataset.addValue(select_list.get(i).getNumber(),select_list.get(i).getIndex_()+"",select_list.get(i).getContent());
        }
        JFreeChart chart = ChartFactory.createBarChart("投票结果图",
                          "选项",
                          "票数(个)",
                          dataset,
                          PlotOrientation.HORIZONTAL,
                          false,
                          false,
                          false);  

        CategoryPlot plot = chart.getCategoryPlot();
        //设置网格背景颜色
        plot.setBackgroundPaint(Color.white);
        //设置网格竖线颜色
        plot.setDomainGridlinePaint(Color.pink);
        //设置网格横线颜色
        plot.setRangeGridlinePaint(Color.pink);  

        //显示每个柱的数值,并修改该数值的字体属性
        BarRenderer renderer = new BarRenderer();
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        renderer.setBaseItemLabelsVisible(true);  

        //默认的数字显示在柱子中,通过如下两句可调整数字的显示
        //注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
        renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3, TextAnchor.BASELINE_RIGHT));
        renderer.setItemLabelAnchorOffset(20D);
        plot.setRenderer(renderer); 

         //下面这段是防止出现乱码的    
        Font font = new Font("宋体", Font.ITALIC, 12);
        CategoryAxis domainAxis = plot.getDomainAxis();//(柱状图的x轴)
        domainAxis.setTickLabelFont(font);//设置x轴坐标上的字体
        domainAxis.setLabelFont(font);//设置x轴上的标题的字体
        ValueAxis valueAxis = plot.getRangeAxis();//(柱状图的y轴)
        valueAxis.setTickLabelFont(font);//设置y轴坐标上的字体
        valueAxis.setLabelFont(font);//设置y轴坐标上的标题的字体
        chart.getTitle().setFont(font);
        return chart ;
    }

}

最后效果是:

时间: 2024-11-11 08:06:50

jfreechart 整合sturts2牛刀小试的相关文章

Struts2整理-----异常以及处理

There is no result type defined for type 'chart' mapped with name 'success' 在struts2与JFreeChart整合使用时,直接配置如下action <!-- 图表输出action --> <action name="ChartOutputAction" class="chartOutputAction"> <result name="success

jfreechart和springMVC+maven整合

高校的项目中一个功能是对统计的成绩进行图表分析,查找了一些资料之后感觉jfreechar上手挺快的,简单的做了几个demo也都很好实现,也能够满足项目中的需求,所以就决定使用这个工具.这里就将学习到的一些关于jfreechar的知识整理一下. 1.    引入jar包 使用这个工具一定要将他的包引入的到项目,在高校的项目中使采用maven管理这些外部文件的,所以对于引入jar包这一步就变得特别简单了,只要在maven项目的pom.xml文件中添加jfreechar的依赖就可以(maven会自动在

Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试

承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. github地址为ssm-demo 你也可以先体验一下实际效果,点击这里就行啦 账号:admin 密码:123456 从构思这个博客,一直到最终确定以这个项目为切入点,中间也是各种问题出现,毕竟是新人,所以也是十分的小心,修改代码以及搬上github其实花了不少时间,但也特别的认真,不知道是怎么回事,感觉这几天的过程比逼死产品经理还要精彩和享受.或许是博客路上的第一站吧,有压力也有新奇,希望自己能坚持下

[六]JFreeChart实践五之与Struts2整合

1.Action,返回Chart package com.java1234.chart.bar; import java.awt.Color; import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.ItemLabelAnchor;import org.jfree.chart.labels.ItemLabelPosition;import org.jfr

struts2整合jfreechart

需要的包: struts2-jfreechart-plugin-2.2.1.1.jar jfreechart-1.0.13.jar jcommon-1.0.17.jar 前台jsp页面中可以使用iframe显示图表,代码 <iframe id="frm1" name="frm1" src="/lzmgzyx/jfreechart.action" style="width:100%;height:700px"><

JFreeChart的简单使用

实例1:简单的饼图 public class Test { public static void main(String[] args) { //建立默认的饼图 DefaultPieDataset ds=new DefaultPieDataset(); ds.setValue("苹果",6000); ds.setValue("三星", 9000); ds.setValue("诺基亚",3200); ds.setValue("其他&quo

Spring框架整合Struts2

1,用Spring架构,及Struts2-spring-plugin插件 导入Spring的dist全部所需的jar包 Struts2的spring插件 struts2-spring-plugin.XX.jar struts2的核心包 struts2-core.XX.jar xwork- core.XX.jar commons.logging.XX.jar ...根据需要选择导入 2,配置web.xml中applicationContext.xml的参数路径及侦听器 <context-param

JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对此,给出代码示例,通过网络爬虫技术,将上传到HDFS的新浪网新闻信息实现热词统计功能,通过图表的柱状图来显示出来. ------> 目录: 1.JFreeChart可视化处理(生成本地图片) [1]HDFS文件读取 [2]JDFreeChart库应用 2.AJAX+JSON+EChart生成可视化图

Struts2整合JFreeChar

1,导入struts2开发的jar包和struts2-jfreechart-plugin-2.3.16.3.jar 2,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/javae