/**
**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);
}
}
}
}