Visual Web JSF 处理 jFreeChart

一、下载jFreeChart,把jcommon和jfreechart的jar加入到工程中

二、配置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>/servlet/DisplayChart</url-pattern>
    </servlet-mapping>

三、新建一个工程。在页面上放一个image组件;在页面的backing bean里面添加一个targetURL的String属性

四、把image组件的url属性绑定到tragetURL。

五、在backing bean里面编写生成图形的代码,例如:

    private void setChart() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(150, " 北京 ", " 苹果 ");
        dataset.addValue(530, " 上海 ", " 苹果 ");
        dataset.addValue(160, " 广州 ", " 苹果 ");
        dataset.addValue(120, " 北京 ", " 梨子 ");
        dataset.addValue(230, " 上海 ", " 梨子 ");
        dataset.addValue(360, " 广州 ", " 梨子 ");
        dataset.addValue(600, " 北京 ", " 葡萄 ");
        dataset.addValue(430, " 上海 ", " 葡萄 ");
        dataset.addValue(560, " 广州 ", " 葡萄 ");
        dataset.addValue(400, " 北京 ", " 香蕉 ");
        dataset.addValue(530, " 上海 ", " 香蕉 ");
        dataset.addValue(660, " 广州 ", " 香蕉 ");
        dataset.addValue(500, " 北京 ", " 荔枝 ");
        dataset.addValue(630, " 上海 ", " 荔枝 ");
        dataset.addValue(430, " 广州 ", " 荔枝 ");

        JFreeChart chart = ChartFactory.createBarChart3D(" 水果销量图统计-By APPVIEWER ", " 水果种类", " 销量 ", dataset, PlotOrientation.VERTICAL, true, false, false);
        chart.setBackgroundPaint(Color.WHITE);
        CategoryPlot plot = chart.getCategoryPlot();

        CategoryAxis domainAxis = plot.getDomainAxis();
        // domainAxis.setVerticalCategoryLabels( false );
        plot.setDomainAxis(domainAxis);

        BarRenderer3D renderer = new BarRenderer3D();
        renderer.setBaseOutlinePaint(Color.BLACK);

        // 设置每个地区所包含的平行柱的之间距离
        renderer.setItemMargin(0.1);
        // 显示每个柱的数值,并修改该数值的字体属性
        renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        renderer.setItemLabelsVisible(true);
        plot.setRenderer(renderer);

        //  设置柱的透明度
        plot.setForegroundAlpha(0.8f);

//        String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
//        String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
        HttpSession hs = (HttpSession) getExternalContext().getSession(true);
        try {
            filename = ServletUtilities.saveChartAsPNG(chart, 640, 480, hs);
            //ServletUtilities.
            graphURL = getExternalContext().getRequestContextPath() + "/servlet/DisplayChart?filename=" + filename;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值