Java 中如何使用 Draw2D 和 SWT 绘图
用 Java 绘图一直都吸引着开发人员的注意。传统上,Java 开发人员使用
java.awt.Graphics 或 Java 2D API 进行绘图。一些开发人员甚至使用现成的开源工具
箱(如 JSci)来绘图。但很多时候,您的选择被限定在了 AWT 或 Swing 上。为了最大
限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 Draw2D,并
编写自己的代码来制图或绘图。
Draw2D 简介
Draw2D 是一个驻留在 SWT Composite 之上的轻量级窗口小部件系统。一个
Draw2D 实例 由一个 SWT Composite、一个轻量级系统及其内容的图形组成。图形 是
Draw2D 的构建块。关于 Draw2D API 的所有细节,可以从 Draw2D Developer’s
Guide 的 Eclipse 帮助文件中找到。因为本文不打算成为一篇讲述 Draw2D 的教程,所
以,为了简便起见,只要您了解 Draw2D API 可以帮助您在 SWT Canvas 上进行绘图就
足够了。您可以直接使用一些标准的图形,比如 Ellipse、Polyline、RectangleFigure
和 Triangle,或者,您可以扩展它们来创建自己的图形。此外,一些容器图形,如
Panel,可以充当所有子图形的总容器。
Draw2D 有两个重要的包:org.eclipse.draw2d.geometry 和
org.eclipse.draw2d.graph,本文中使用了这两个包。org.eclipse.draw2d.geometry
包有一些有用的类,比如 Rectangle、Point 和 PointList,这些类都是自我解释的。另
一个包 org.eclipse.draw2d.graph 开发人员使用的可能不是太多。这个包提供了一些重
要的类,比如 DirectedGraph、Node、Edge、NodeList 和 EdgeList,这些类有助于
创建图表。
在本文中,我将解释如何使用 Draw2D 编写代码,帮助您以图形的方式形象化您的
数据。我将从一项技术的描述开始,该技术将位于某一范围内的数据值(比如,从 0 到
2048)按比例缩放成另一范围内的等效数据值(例如,从 0 到 100)。然后,我将举例
说明如何绘制出任意个级数的 X-Y 坐标图,每个级数都包含一组数据元素。在学习了本文
中的概念之后,就可以很容易地绘制其他类型的图表,比如饼图和条形图。
具体的绘图过程
步骤 1:您想绘制什么样的图形?
显然,您想以图形方式描绘来自数据源的数据。所以,您需要那些您想以图形形式形
象化 的数据。为了简便起见,我使用了一个名为 dataGenerator 的简单函数生成的数据,
而不是从 XML 文件或其他一些数据源读取数据,该函数使用了一个 for(;;) 循环,并以数
组列表的形式返回生成的值。
清单 1. 生成一些数据
private ArrayList dataGenerator() {
评论0
最新资源