Package org.skzr.chart4me.demo.applet

Source Code of org.skzr.chart4me.demo.applet.HelloJFreeChart

/**
* Copyright (c) 2010-2020 by skzr.org
* All rights reserved.
* @Author skzr.org(E-mail:skzr.org@gmail.com)
* @date 2010-11-1 下午10:55:07
*/
package org.skzr.chart4me.demo.applet;

import java.awt.Color;
import java.awt.Font;
import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.swing.JApplet;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
* @jdk 1.6
* @author skzr.org(E-mail:skzr.org@gmail.com)
* @version 1.0.0
*/
public class HelloJFreeChart extends JApplet {
  private static final long serialVersionUID = 1L;
  protected final transient Logger logger = LoggerFactory
      .getLogger(getClass());

  private static PieDataset getDataSet() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    dataset.setValue(" 市场前期", new Double(10));
    dataset.setValue(" 立项", new Double(15));
    dataset.setValue(" 计划", new Double(10));
    dataset.setValue(" 需求与设计", new Double(10));
    dataset.setValue(" 执行控制", new Double(35));
    dataset.setValue(" 收尾", new Double(10));
    dataset.setValue(" 运维", new Double(10));
    return dataset;
  }

  private void buildChart() {
    PieDataset dataset = getDataSet();
    JFreeChart chart = ChartFactory.createPieChart3D(" 项目进度分布", dataset, true, true, false);
    PiePlot3D plot = (PiePlot3D) chart.getPlot();
    // 图片中显示百分比:默认方式
    // plot.setLabelGenerator(new
    // StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));
    // 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位
    plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
        "{0}={1}({2})", NumberFormat.getNumberInstance(),
        new DecimalFormat("0.00%")));
    // 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例
    plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
        "{0}={1}({2})"));
    // 设置背景色为白色
    chart.setBackgroundPaint(Color.white);
    // 指定图片的透明度(0.0-1.0)
    plot.setForegroundAlpha(1.0f);
    // 指定显示的饼图上圆形(false)还椭圆形(true)
    plot.setCircular(true);
    // 设置图标题的字体
    Font font = new Font(" 黑体", Font.CENTER_BASELINE, 20);
    TextTitle title = new TextTitle(" 项目状态分布");
    title.setFont(font);
    chart.setTitle(title);
    ChartPanel panel = new ChartPanel(chart);
    add(panel);
//    ChartUtilities.writeChartAsJPEG(fos_jpg, 100, chart, 640, 480, null);
  }

  @Override
  public void init() {
    logger.info("JFreeChart你好!");
    buildChart();
  }
}
TOP

Related Classes of org.skzr.chart4me.demo.applet.HelloJFreeChart

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.