网上有很多介绍PIE图的~但是没见到BAR图的~

解决方案 »

  1.   

    JFreeChart本身的生成方法比较麻烦,建议使用cewolf,它是封装了JFC的一套标记库,用起来很简单
    生成BAR图的Map只需要创建一个类,并实现CategoryItemLinkGenerator接口就OK了!
      

  2.   

    public class HApplyCountData implements DatasetProducer, CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable {
        private static final Log log = LogFactory.getLog(HApplyCountData.class);
        private String menu;
        private int datatype;
        private int analyse;
        private String date;    public Object produceDataset(Map params)  throws DatasetProduceException {
            log.debug("Bar producing data");
            DefaultCategoryDataset dataset = new DefaultCategoryDataset() {
                protected void finalize() throws Throwable {
                    super.finalize();
                    log.debug(this + "finalized.");
                }
            };
            if (params.get("chartData") != null) {
                Collection coll = (Collection) params.get("chartData");
                Iterator it = coll.iterator();
                while (it.hasNext()) {
                    PortBean bean = (PortBean) it.next();
                    if (String.valueOf(bean.getLabel()) != null) {
                        dataset.addValue(bean.getValue(), bean.getColtime().substring(0, 4), String.valueOf(bean.getLabel()));
                        this.menu = bean.getMenu();
                        this.datatype = bean.getDatatype();
                        this.analyse = bean.getAnalyse();
                        this.date = bean.getColtime();
                    }
                }
            }
            return dataset;
        }
    ...
        public String generateToolTip(CategoryDataset arg0, int series, int arg2) {
    ...
        } public String generateLink(Object data, int series, Object category) {
            StringBuffer url = new StringBuffer();
            url.append("searchPort.do?m=").append(this.menu);
            url.append("&type=").append(this.datatype);
            url.append("&g=").append(this.analyse);
            url.append("&port=").append(category.toString());
            url.append("&date=").append(this.date);
            return url.toString();
        }
    }