package com.wkx.jfreechart;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.util.Random;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.chart.urls.StandardPieURLGenerator;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class MyPieChartTest extends ApplicationFrame {
//private String[] engStr={"One","Two","Three","Four","Five","Six","Seven","eight","Nine","Ten"};
private String[] cheStr={"第一","第二","第三","第四","第五","第六","第七","第八","第九","第十"};
public MyPieChartTest(String title) {
super(title);
JFreeChart pieChart = createChart(createDataSet());
JPanel localPanel = new ChartPanel(pieChart);
localPanel.setPreferredSize(new Dimension(500,270));
setContentPane(localPanel);
}
public static void main(String[] args) {
MyPieChartTest pieChartTest = new MyPieChartTest("饼形图测试");
pieChartTest.pack();
RefineryUtilities.centerFrameOnScreen(pieChartTest);
pieChartTest.setVisible(true);
}
public PieDataset createDataSet(){
DefaultPieDataset dataset = new DefaultPieDataset();
Random r = new Random();
for(int i=0;i<cheStr.length;i++){
dataset.setValue(cheStr[i], r.nextDouble()*10);
}
return dataset;
}
public JFreeChart createChart(PieDataset dataset){
//创建绘图区
JFreeChart pieChart = ChartFactory.createPieChart("测试饼形图", dataset, true, true, true);
//设置绘图区背景色
pieChart.setBackgroundPaint(Color.PINK);
//获取图片标题
TextTitle title = pieChart.getTitle();
//设置标题样式
title.setFont(new Font("黑体", Font.PLAIN, 20));
//设置鼠标悬浮字
title.setToolTipText("这是我的测试饼形图。");
//获取绘图区
PiePlot plot = (PiePlot)pieChart.getPlot();
//设置没有数据时显示的消息
plot.setNoDataMessage("没有数据。");
//设置没有数据时显示消息的字体
plot.setNoDataMessageFont(new Font("黑体",Font.PLAIN,20));
//设置图片超链接
plot.setURLGenerator(new StandardPieURLGenerator("http://wenkaixuan.iteye.com"));
//设置内容字体
plot.setLabelFont(new Font("宋体",Font.PLAIN,14));
//获取绘图区底部标签
LegendTitle legTitle = pieChart.getLegend();
//设置底部标签字体
legTitle.setItemFont(new Font("黑体",Font.PLAIN,14));
return pieChart;
}
}
分享到:
相关推荐
在Web应用中,可以结合Servlet或Spring MVC将图表以图片形式输出。 总之,JFreeChart是Java开发中不可或缺的图表库,无论你是要创建简单的柱状图还是复杂的饼图,都能找到合适的方法。通过对源码的学习,我们不仅...
JFreeChart是一款强大的Java图形库,它允许开发者创建各种类型的统计图表,如饼图、柱状图、线图、散点图等。在Java应用程序中,JFreeChart为数据可视化提供了丰富的功能,使得数据的展示更为直观易懂。在本教程中,...
JFreeChart是一个强大的Java库,用于创建各种类型的图表,如曲线图、柱形图和饼形图。在实际应用中,JFreeChart广泛用于数据分析和可视化,尤其在报表系统中。本部分将详细介绍如何使用JFreeChart创建动态曲线图,并...
JFreeChart可以轻松地与Swing、JavaFX等Java GUI库集成,也可以在Servlets、JSP和Spring MVC等Web环境中使用。此外,它还支持导出图表到PDF、SVG等格式,便于在报告和文档中使用。 ### 7. **学习资源** 对于开发者...
在实际应用中,JFreeChart常与其他Java库结合使用,如Swing或JavaFX进行图形界面开发,或者与Servlets和JSP配合在Web环境中展示图表。压缩包中的"有问题加我微信.txt"可能是作者提供的一种联系方式,以便用户在使用...
为了显示图表,可以将其嵌入到Swing组件中,如`JFrame`,或者导出为图片文件。 总之,JFreeChart是Java开发中一个功能强大的图表库,通过它可以轻松创建各种类型的图表,包括饼图。结合数据库操作,可以实现动态...
"Java程序报表控件汇"这个主题涵盖了各种图表类型,如柱型图、饼型图等,这些都是数据分析和业务报告中常见的图形表示方式。Java报表标签进一步强调了我们讨论的核心在于使用Java语言来创建和管理这些报表。 柱型图...