Java中使用Draw2D和SWT绘图

http://tech.ddvip.com   2007年07月23日    社区交流

内容摘要:您的选择被限定在了 AWT 或 Swing 上。为了最大限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 Draw2D,并编写自己的代码来制图或绘图。

  X-Y 坐标图应该能够绘制出 2-D 飞机上的任意数量的级数线。每个级数线都应该以图形形式显示出引用 X 和 Y 引用线的那些级数中的每个点的位置。每个点都应该通过一条线连接到级数中的下一个点上。通过使用表示一个点和一条线的 Draw2D 图形,您应该能够创建这样一个坐标图。例如,为了表示一个点,我通过扩展 Ellipse 图形创建了一个 Dot 图形,并使用 PolylineConnection 图形来表示连接线。

  DirectedGraphXYPlotter 类只有两个公共函数:setData(ArrayList seriesData) 和 plot()。函数 setData(ArrayList seriesData) 接受您想要以图形形式形象化的数据(参见步骤 1),而 plot() 函数则开始绘图。

  一旦调用了 plot() 函数,就必须依次采用以下步骤:

  采用一个 SWT Composite,并将 FigureCanvas 放在它之上。然后,将一个类似 Panel 的通用容器图放在画布上。

  计算将要绘制的级数的数量,然后填充创建 DirectedGraphs 所需数量的 NodeLists 和 EdgeLists。

  在 Panel 图上绘制 X 坐标轴和 Y 坐标轴。(参见所附源代码中 srcGraFixFigure 目录下的 XRulerBar.java 和 YRulerBar.java。)

  创建和级数一样多的 DirectedGraphs,以便进行绘图。

  在 Panel 图上绘制点和连接线,同时采用步骤 d 中创建的 DirectedGraphs 中的图形数据。

  最后,通过提供 Panel 图来设置画布的内容,其中包括到目前为止您已经准备好的所有的点和连接线。

  在以下代码中:

  第 6-11 行代码对应于上述的步骤 a。

  第 14 行,即函数 populateNodesAndEdges(),对应于上述的步骤 b。

  第 16 行,即函数 drawAxis(),对应于上述的步骤 c。

  第 17 行、第 18 行和第 19 行对应于上述的步骤 d 和步骤 e。

责编:豆豆技术应用

正在加载评论...