文档库 最新最全的文档下载
当前位置:文档库 › JFreechart饼图实例

JFreechart饼图实例

JFreechart饼图实例
JFreechart饼图实例

import java.awt.GraphicsConfiguration;

import java.awt.HeadlessException;

import javax.swing.JFrame;

import org.jfree.chart.*;

import org.jfree.chart.plot.*;

import org.jfree.data.general.*;

import org.jfree.util.*;

import org.jfree.chart.title.*;

import java.awt.*;

public class PieChartDemo extends JFrame {

private static final long serialVersionUID = 1l;

//构造函数applicationTitle-窗口标题, chartTitle-报表标题

public PieChartDemo(String applicationTitle, String chartTitle) {

super(applicationTitle);//调用父类构造函数,设置窗口标题

PieDataset dataset = createDataset();//调用createDataset()方法,返回DefaultPieDataset对象

JFreeChart chart = createChart(dataset, chartTitle);//调用createDataset()方法,返回JFreeChart对象

ChartPanel chartPanel = new ChartPanel(chart);//一个Swing GUI component,用来显示JFreeChart

chartPanel.setPreferredSize(new java.awt.Dimension(510, 380));//设置组件尺寸

setContentPane(chartPanel);//设置 chartPanel 属性。此方法由构造方法调用。

}

private PieDataset createDataset() {

DefaultPieDataset result = new DefaultPieDataset();//创建一个DefaultPieDataset实例,Dataset是图表的容器

result.setValue("吃饭", 10);//Sets the data value for a key and

result.setValue("睡觉", 30);//sends a DatasetChangeEvent to all registered listeners.

result.setValue("上课", 20);//以上注释请自己翻译

result.setValue("逃课", 40);

return result;//返回DefaultPieDataset对象

}

private JFreeChart createChart(PieDataset dataset, String title) { JFreeChart chart = ChartFactory.createPieChart3D(title, dataset,

true,

true, false);//创建一个3D饼图

TextTitle textTitle = chart.getTitle();//获取图表的标题

textTitle.setFont(new Font("黑体", Font.PLAIN, 20));//设置图表的标题字体,避免产生乱码

chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));//设置项目字体,避免产生乱码

PiePlot3D plot = (PiePlot3D) chart.getPlot();//获取图表区域对象

plot.setStartAngle(-30);//设置开始角度,默认的是90°

plot.setLabelFont(new Font("黑体", Font.PLAIN, 20));//设置标签字体,避免乱码

return chart;//返回JFreeChart对象

}

public static void main(String[] args) {

PieChartDemo demo=new PieChartDemo("饼图实例", "金哥的作息时间");//实例化

demo.pack();//awt的东东,你懂的

demo.setVisible(true);//同上

}

}

相关文档