如何在对比型柱图上设置"数据下探"和文字说明

/**

**QQ:252574345

**MSN:[email protected]

*/

首先我们看看在普通柱图上生成连接

renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator(
        "detail.jsp", "fruit", ""));
plot.setRenderer(renderer);

只要这样做就可以了.这个时候,在每根柱上都生成了连接,我们可以在这里设置一些参数,比如该组id,因为往往组id是唯一的查询条件.根据该组id在查询这个组的具体详细信息.这样做当然是合理的可行的.因为这里的每根柱子代表一个组,而该组内在没有分组

但是当我们业务发生变化:不仅仅要对这些组进行对比,还要对组内各个分组进行对比显示的时候,就要用到对比柱图了

 

在对比图上设置链接时,不可避免的遇到一个问题描述如下(不能发图,只好描述了):

当前组有水果 蔬菜 肉类 蛋

水果组内有苹果 ,香蕉,李子等

蔬菜组内有萝卜,白菜,青菜

肉类组里有牛肉,猪肉,狗肉

蛋类组内有鸡蛋,鸭蛋等

首先需要用对比柱图显示各个组,并对比显示各个组的分组

需要为各个块都生成连接,也就是说点 苹果的时候,向后台传递的是:水果组 id, 苹果分组id

而我们发现,jfreechart里,我们只能通过

renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator(
        "detail.jsp", "fruit", ""));
plot.setRenderer(renderer);

这样的设置,只是为每个大组设置了参数,而不能为每个小组设置参数,从而传递到后台

通过跟踪发现

修改CategoryItemEntity类setURLText(url);可以达到目的

解决方式:

 

  StandardEntityCollection sec=new StandardEntityCollection();


  
  ChartRenderingInfo info = new ChartRenderingInfo(sec);

 Collection ce=new  ArrayList();
 ce=sec.getEntities();
 Object[] keys=paths.keySet().toArray();
 Object ohjs[]=ce.toArray();

 for(int i=0;i<ce.size();i++){
 

  if(ohjs[i] instanceof CategoryItemEntity){
   CategoryItemEntity cir=(CategoryItemEntity)(ohjs[i]);

//这里执行自己的运算逻辑,生成url ,  title
             cir.setURLText(url);

           cir.setToolTipText(des);
          
          }
          
         }
            
  
  }

  
 }

你可能感兴趣的:(jsp,qq,jfreechart)