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