解决方案 »

  1.   

    public class jfreeChartUtil1 { public void setPic(activityVo activity) {
    DefaultCategoryDataset datasetTemp = new DefaultCategoryDataset();
    CategoryDataset dataset;
    //设值
    List events = new ArrayList();
    events = activity.getEvents();
    for(int i =0; i < events.size(); i++) {

    datasetTemp.addValue(((eventVo)events.get(i)).getCount(), "", ((eventVo)events.get(i)).getEvent_name()+"十大新闻事件当前投票情况十大新闻事件当前投票情况");
    }
    dataset = datasetTemp;
    JFreeChart chart = ChartFactory.createBarChart("十大新闻事件当前投票情况", // 图表标题
    " ", // 目录轴的显示标签
    "票数", // 数值轴的显示标签
    dataset, // 数据集
    PlotOrientation.VERTICAL, // 图表方向:水平、垂直
    false, // 是否显示图例(对于简单的柱状图必须是false)
    false, // 是否生成工具
    false // 是否生成URL链接
    ); FileOutputStream fos_jpg = null;
    try {
    CategoryPlot plot = chart.getCategoryPlot();// 获得图表区域对象 // 设置图表的颜色   
                //BarRenderer3D renderer = new BarRenderer3D();
                CategoryItemRenderer renderer = plot.getRenderer(); 
                //设置每个柱子代表的颜色
                renderer.setSeriesPaint(0, new Color(255, 255, 255));            // 显示每个柱的数值,并修改该数值的字体属性
                //renderer.setMaxBarWidth(0.8);
                //renderer.setItemMargin(0.8);            renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
                renderer.setItemLabelFont(new Font("黑体", Font.BOLD, 9));// 12号黑体加粗   
                renderer.setItemLabelPaint(Color.black); 
                renderer.setPositiveItemLabelPosition(new ItemLabelPosition(
                        ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
                //renderer.setItemLabelAnchorOffset(10D);
                
                renderer.setItemLabelsVisible(true);
                plot.setForegroundAlpha(0.65f);//设置柱的透明度 
                plot.setRenderer(renderer);            //设置图片标题的位置
                plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT); 
                plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);  chart.setBackgroundPaint(Color.ORANGE);//设置背景颜色 File file = new File(activity.getPic_path());
    if(!file.exists()) {
    file.mkdirs();
    }
    fos_jpg = new FileOutputStream("D:\\bg_nba_grant0.jpg");
    if(events.size() < 4) {
    ChartUtilities.writeChartAsJPEG(fos_jpg, 500, chart, 500, 200,
    null);
    } else {
    ChartUtilities.writeChartAsJPEG(fos_jpg, 500, chart, 1000, events.size()*50,
    null);
    }
    }catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    fos_jpg.close();
    } catch (Exception e) {
    }
    }
    }