JFreeChat学习----圆饼状图的创建(结合serlvet,非原创)!

第一步:准备圆饼图数据

 /**
     * 创建一个数据集合
     * 
     * @return 返回的是一个圆饼图数据
     */ 
    private static DefaultPieDataset getDataSet() { 
        DefaultPieDataset dataset = new DefaultPieDataset(); 
        dataset.setValue("苹果", 100); 
        dataset.setValue("梨子", 200); 
        dataset.setValue("葡萄", 300); 
        dataset.setValue("香蕉", 400); 
        dataset.setValue("荔枝", 500); 
        return dataset; 
    } 

第二步:利用HttpServlet的service方法

  public void service(ServletRequest req, ServletResponse res) 
            throws ServletException, IOException { 
        res.setContentType("image/jpeg");// 将输出设置为image/jepg格式 
        DefaultPieDataset data = getDataSet();// 创建数据集合容器 
        JFreeChart chart = ChartFactory.createPieChart3D("水果产量图", // 图表标题 
                data, // 数据集 
                true, // 是否显示图例 
                false, // 是否生成工具 
                false // 是否生成URL链接 
                );// 创建图表  
        ChartUtilities.writeChartAsJPEG(res.getOutputStream(), 1.0f, chart, 
                800, 450, null);// 输出图表  
    }  

第三步:配置WEB.XML之中 的 servlet,这里不废话

 第四步:在JSP页面显示:

<img src="servlet的配置路径"/>

 第五步:补充,修正中文出现 口口 的问题:

Font titleFont = new Font("黑体", Font.BOLD, 20); 
    TextTitle textTitle = chart.getTitle(); 
    textTitle.setFont(titleFont);// 为标题设置上字体 
 
Font plotFont = new Font("宋体", Font.PLAIN, 16); 
PiePlot plot = (PiePlot) chart.getPlot(); 
plot.setLabelFont(plotFont); // 为饼图元素设置上字体 
 
Font LegendFont = new Font("楷体", Font.PLAIN, 18); 
LegendTitle legend = chart.getLegend(0); 
legend.setItemFont(LegendFont);// 为图例说明设置字体

第六步:让圆饼图显示每一种情况占用了多少百分比

plot.setLabelGenerator(new StandardPieSectionLabelGenerator(

"{0} {2}",NumberFormat.getNumberInstance(),

new DecimalFormat("0.00%")));// 显示百分比 

最终显示:

 

 

 

 

 

posted @ 2013-06-02 03:02  流花飘原  阅读(271)  评论(0编辑  收藏  举报