JFreeChart - PieChartTest.java

原创 2006年05月17日 13:13:00

import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.Rotation;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import java.awt.Insets;
import rewin.tools.reportStat.PiePlot3DCustom;
import rewin.tools.reportStat.CustomLegend;

public class PieChartTest extends ApplicationFrame {
  public PieChartTest(String s) {
    super(s);
    PieDataset pieDataset = createDataset();
    JFreeChart freeChart = createChart(pieDataset);
    ChartPanel chartPanel = new ChartPanel(freeChart);
    chartPanel.setPreferredSize(new Dimension(180, 120));
    setContentPane(chartPanel);
  }

  private static PieDataset createDataset() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    //dataset.setValue("Nokia", new Double(40));
    //System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    dataset.setValue("Moto", new Double(30));
    dataset.setValue("三星", new Double(20));
    dataset.setValue("西门子", new Double(10));
    dataset.setValue("波导", new Double(5));
    dataset.setValue("联想", new Double(5));
    dataset.setValue("其他", new Double(5));
    //dataset.setValue("无投诉", new Double(1));
    System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    return dataset;
  }

  private static JFreeChart createChart(PieDataset pieDataset) {
    //JFreeChart freeChart = ChartFactory.createPieChart3D("手机黑榜", pieDataset, true, false, false);
    //JFreeChart freeChart = ChartFactory.createPieChart3D("", pieDataset, true, false, false);

    PiePlot3DCustom piePlot3D = new PiePlot3DCustom(pieDataset);
    int index = pieDataset.getIndex("无投诉");
    System.out.println("index = " + index);
    System.out.println(pieDataset.getKey(0));

    piePlot3D.setInsets(new Insets(0, 0, 0, 0));
    //piePlot3D.setSectionPaint(0, new java.awt.Color(0x88EEFA));
    piePlot3D.setSectionPaint(0, new java.awt.Color(0x56D0F5));
    //piePlot3D.setSectionPaint(1, new java.awt.Color(0xBEEC56));
    piePlot3D.setSectionPaint(1, new java.awt.Color(0x51E050));
    //piePlot3D.setSectionPaint(2, new java.awt.Color(0xFACBDB));
    piePlot3D.setSectionPaint(2, new java.awt.Color(0xE6315C));
    //piePlot3D.setSectionPaint(3, new java.awt.Color(0xFEF29E));
    piePlot3D.setSectionPaint(3, new java.awt.Color(0xFCC938));
    //piePlot3D.setSectionPaint(4, new java.awt.Color(0xFD9BF0));
    piePlot3D.setSectionPaint(4, new java.awt.Color(0xED36C2));
    //piePlot3D.setSectionPaint(5, java.awt.Color.orange);
    //piePlot3D.setSectionPaint(6, java.awt.Color.magenta);
    //piePlot3D.setSectionPaint(7, java.awt.Color.black);
    //piePlot3D.setSectionPaint(8, java.awt.Color.lightGray);
    //piePlot3D.setSectionPaint(9, java.awt.Color.red);
    //piePlot3D.setOutlinePaint(java.awt.Color.white);
    if (pieDataset.getItemCount() == 1 && pieDataset.getIndex("无投诉") >= 0) {
      piePlot3D.setSectionPaint(0, java.awt.Color.red);
    }

    piePlot3D.setStartAngle(60D);
    piePlot3D.setDirection(Rotation.CLOCKWISE);
    piePlot3D.setForegroundAlpha(0.8F);
    piePlot3D.setNoDataMessage("No data to display");
    piePlot3D.setLabelGenerator(new CustomLabelGenerator());
    piePlot3D.setBackgroundAlpha(0f);//设置背景透明
    piePlot3D.setOutlinePaint(java.awt.Color.white);//设置边框为白色
    JFreeChart freeChart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, piePlot3D, true);

    freeChart.setBackgroundPaint(java.awt.Color.white);
    freeChart.setBorderVisible(false);//是否显示边框

    CustomLegend legend = new CustomLegend();
    legend.setAnchor(Legend.EAST);
    legend.setOutlinePaint(java.awt.Color.white);//设置边框为白色
    freeChart.setLegend(legend);
    //Legend legend = freeChart.getLegend();
    //StandardLegend legend = (StandardLegend) freeChart.getLegend();
    //legend.setAnchor(Legend.EAST);
    //legend.setOutlinePaint(java.awt.Color.white);

    return freeChart;
  }

  public static void main(String[] args) {
    String str = "#E6315C";
    String s = str.substring(1);
    System.out.println(s);
    int color = Integer.parseInt(s, 16);
    System.out.println(color);
    PieChartTest pieChartTest = new PieChartTest("PieChartTest");
    pieChartTest.pack();
    RefineryUtilities.centerFrameOnScreen(pieChartTest);
    pieChartTest.setVisible(true);
  }

  static class CustomLabelGenerator implements PieSectionLabelGenerator {

    public String generateSectionLabel(PieDataset piedataset, Comparable comparable) {
      return null;
    }

    CustomLabelGenerator() {
    }
  }

}

相关文章推荐

web项目中运用java jfreechart生成各种样式报表的教程demo代码下载

原文:web项目中运用java jfreechart生成各种样式报表的教程demo代码下载 源代码下载地址:http://www.zuidaima.com/share/18303912047...

JAVA基础应用——JFreeChart 使用

JFreeChart是一个Java下的免费的图表控件。网址: http://www.jfree.org/jfreechart/ 不多说,直接上代码: 饼状图: package chartTest;...
  • xundh
  • xundh
  • 2015年01月08日 19:31
  • 496

Java学习笔记之jfreeChart 柱状图

package com.mengya.test.jfreechart; import java.awt.Font; import javax.swing.JPanel; import org.j...
  • SJF0115
  • SJF0115
  • 2011年12月10日 12:56
  • 2002

JAVA 用JFreeChart绘制K线图 急!急!急!!求高手!

package com;import java.awt.Color;import java.awt.GradientPaint;import java.awt.Paint;import java.aw...
  • mixiudu
  • mixiudu
  • 2011年04月27日 20:21
  • 678

《Java报表之JFreeChart》第五讲

Struts2与jfreechart结合生成报表

JAVA生成报表(JFreeChart)

JAVA生成报表 JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设...

JAVA_将JFreeChart图片导出到Excel

package jfreechart; import java.awt.Font; import java.awt.image.BufferedImage; import java.io.Byt...
  • e_yohn
  • e_yohn
  • 2011年08月28日 10:50
  • 1650

【Java图表绘制-JFreeChart】

一些常用的支持 Java 的图表类库 JopenChart JopenChart 是一个开放源代码的Java库,它还是一个可以用来创建不同种类图表并且将它们内嵌到web或者Swing应用程序中的工具。...
  • kana007
  • kana007
  • 2014年03月16日 21:47
  • 2345

《Java报表之JFreeChart》第四讲

1.TimeSeries,TimeSeriesCollection 引入 package com.xp.chart.line; import java.awt.Font; import jav...

JFreeChart java 图形绘制

一、JFreeChart获取。         JFreeChart是JFreeChart公司在开源网站SourceForge.NET上的一个项目,该公司的主要产品有如下:         1、JFr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JFreeChart - PieChartTest.java
举报原因:
原因补充:

(最多只允许输入30个字)