14.dwr 图片数据的传递和柱状图片生成与显示

只是重要知识点的一些代码记录,解释有点少

 

1.页面代码:

<img border="1" height="400" width="50%" id="imgObj">

<script type="text/javascript">

var aa;

       var ab;

        function getData(){

        aa = new Array();

        ab = new Array();

        for(i=0;i<10;i++){

           aa[i]=i;

           ab[i]=i+1;

           }

        getImgURL();

       }

      

       function getImgURL(){

           service.getChartURLID(aa,ab,changeURL);//dwr服务

        }

   

       //改变当前图片对象的路径

       function changeURL(url){

           $("imgObj").src = url;

           setTimeout("getImgURL()",100000);

       }

</script>

 

 

2.后台代码:

   Dwr配置:

<allow>

     <create creator="new" javascript="service">

         <param name="class" value="com.nantian.service.Service" />

     </create>

     </allow>

  web.xml配置

<!--图表图片 -->

<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>

 

    Service服务:

public String getChartURLID(int[] aa,int[] ab,HttpServletRequest request)

    throws IOException {

              String[] aas = new  String[aa.length];

              for (int i=0;i<aa.length;i++) {

                  aas[i]=aa[i]+"";

              }

               JFreeChart chart = createBarChart(aas,ab,"月份");

String filename = ServletUtilities.saveChartAsPNG(chart, 400, 300,request.getSession());

              // 调用DisplayChart(配置在web.xml中),生成图形

              String graphURL = request.getContextPath() + "/DisplayChart?filename="+ filename;

              return graphURL;

           }

 

//柱形图生成

public JFreeChart createBarChart(String []a,int[] b,String type){

       DefaultCategoryDataset dataset = new DefaultCategoryDataset();

       //添加数据

       for(int i=0;i<a.length;i++){

           dataset.addValue(b[i],"用电量",a[i]);

       }

       JFreeChart  chart = ChartFactory.createBarChart3D("用电统计图", type,"用电量", dataset, PlotOrientation.VERTICAL, true, false, false);

       // 设置总的背景颜色

         chart.setBackgroundPaint(ChartColor.green);

           // 设置标题颜色

         chart.getTitle().setPaint(ChartColor.black);

         // 获得图表对象

         CategoryPlot p =chart.getCategoryPlot();

         // 没有数据时显示

         p.setNoDataMessage("无对应的数据,请重新查询。");

         // 设置图的背景颜色

         p.setBackgroundPaint(ChartColor.yellow);

         // 设置表格线颜色

         p.setRangeGridlinePaint(ChartColor.red);

        

         BarRenderer3D   renderer   =   new   BarRenderer3D();

            //显示每个柱的数值,并修改该数值的字体属性

           renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

            renderer.setItemLabelFont(new  Font( "黑体 ",Font.PLAIN,12));

            renderer.setItemLabelsVisible(true);

            p.setRenderer(renderer);

       return chart;

       }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值