报表组件 JFreeChart (jfreechart-1.0.19) 的使用

前期准备:java

       导入 jfreechart-1.0.19.jar 、 jcommon-1.0.23.jar  这两个jar包工具



例程1:ui


package com.bjsxt.shopping.reports;


import java.io.FileOutputStream;
import java.io.IOException;


import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
/**
 *  柱状图生成的
 * 
 */
public class TestJFreeChart {
public static void main(String[] args) throws IOException{
DefaultCategoryDataset dataset = getDataSet2();
JFreeChart chart = ChartFactory.createBarChart3D(
"水果产量图", // 图表标题
"水果",   // 目录轴的显示标签(横轴)
"产量",   // 数值轴的显示标签(纵轴)
dataset,  // 数据集
PlotOrientation.VERTICAL,  // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL连接
);

FileOutputStream fos_jpg = null;
try {

fos_jpg = new FileOutputStream("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,1,chart,400,300,null);

} finally {
try {
  fos_jpg.close();
 } catch (Exception e) {}
}
}



/**
* 获取一个演示用的简单数据集对象
* @return
*/
private static DefaultCategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "", "苹果");
dataset.addValue(100, "", "苹果");
dataset.addValue(200, "", "梨子");
dataset.addValue(300, "", "葡萄");
dataset.addValue(400, "", "香蕉");
dataset.addValue(500, "", "荔枝");
return dataset;
}


/**
* 获取一个演示用的组合数据集对象
* @return
*/
private static DefaultCategoryDataset getDataSet2() {

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(100, "北京", "苹果");
dataset.addValue(100, "上海", "苹果");
dataset.addValue(100, "广州", "苹果");

dataset.addValue(200, "北京", "梨子");
dataset.addValue(200, "上海", "梨子");
dataset.addValue(200, "广州", "梨子");

dataset.addValue(300, "北京", "葡萄");
dataset.addValue(300, "上海", "葡萄");
dataset.addValue(300, "广州", "葡萄");

dataset.addValue(400, "北京", "香蕉");
dataset.addValue(400, "上海", "香蕉");
dataset.addValue(400, "广州", "香蕉");

dataset.addValue(500, "北京", "荔枝");
dataset.addValue(500, "上海", "荔枝");
dataset.addValue(500, "广州", "荔枝");
return dataset;
}
}
spa


例程2:对象

package com.bjsxt.shopping.reports;


import java.io.FileOutputStream;
import java.io.IOException;


import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.general.DefaultPieDataset;


/**
 *   饼状图的生成
 * 
 */
public class TestJFreeChart2 {


public static void main(String[] args) throws IOException {
DefaultPieDataset dataset = getDataSet();
JFreeChart chart = ChartFactory.createPieChart3D(
"水果产量图", // 图表标题
dataset, // 数据集
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL连接
);


FileOutputStream fos_jpg = null;

try {


fos_jpg = new FileOutputStream("D:\\fruit.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300, null);


} finally {
try {
fos_jpg.close();
} catch (Exception e) {
}
}
}


/**
* 获取一个数据集对象

* @return
*/
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("苹果", 100);
dataset.setValue("梨子", 100);
dataset.setValue("葡萄", 100);
dataset.setValue("香蕉", 100);
dataset.setValue("荔枝", 100);
return dataset;
}


}
jsx