4.2 创建第一个图表
4.2.1 概述
使用JFreeChart创建图表共有三个步骤。如下:
- 创建一个dataset。该dataset包含图表要显示的数据。
- 创建一个JFreeChart对象。该对象负责画这个图表。
- 创建一个输出目标(如:一个panel,显示在屏幕上)。该输出目标画这个图表。
下面,我们使用一个简单的应用(First.java)来描述这个过程。该应用产生了一个饼图,如下图4.1所示:
图4.1 创建的第一个饼图(参考First.java)
上面描述的三个步骤,将在下面的章节里面,均有代码详细说明。
4.2.2 数据
步骤一要求我们为我们的图表创建一个dataset。使用DefaultPieDataset类可以很容易创建。如下代码:
// create a dataset...
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Category 1", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);
注意:
JFreeChart可以使用符合PieDataset接口的任何实现数据来创建饼图。DefaultDataset类实现了PieDataset接口,提供了一种便利的使用方式。
我们可以自由的开发符合实际需的任意PieDataset接口实现。
4.2.3 创建一个饼图
步骤二关心的是我们如何使用这个dataset展示在区域中。这就需要我们创建一个JFreeChart对象,该对象使用我们的饼图dataset数据画一个图表。我们使用ChartFactory类来创建,代码如下:
// create a chart...
JFreeChart chart = ChartFactory.createPieChart(
"Sample Pie Chart",
dataset,
true, // legend?
true, // tooltips?
false // URLs?
);
注意:
代码中将一个dataset的引用传入到工厂方法中。JFreeChart持有这个dataset引用的目的是便于在画图表时能够获得数据。使用JFreeChart创建图表有许多定制外观的方式,在这个例子中我们使用缺省的属性值。后面章节将详细介绍。
4.2.4 显示图表
最好一个步骤就是在某个地方显示该图表。JFreeChart提供了非常灵活的图表输出方式。
现在我们可以在一个屏幕的框架中显示这个图表。ChartFrame具有显示图表的机制(ChartPanel)。代码如下:
// create and display a frame...
ChartFrame frame = new ChartFrame("First", chart);
frame.pack();
frame.setVisible(true);
代码全部完成,运行main()方法,可以出现图4.1界面。
4.2.5 全部程序代码
下面是整个例子的全部代码,更加清楚的看到我们需要导入的类包和实现方法。
public class First {
public static void main(String[] args) {
// create a dataset...
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Category 1", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);
// create a chart...
JFreeChart chart = ChartFactory.createPieChart(
"Sample Pie Chart",
dataset,
true, // legend?
true, // tooltips?
false // URLs?
);
// create and display a frame...
ChartFrame frame = new ChartFrame("First", chart);
frame.pack();
frame.setVisible(true);
}
}