选择显示字体大小

在java中使用draw2d和swt绘图


  用 java绘图一直都吸引着开发人员的注意。传统上,java 开发人员使用 java.awt.graphics 或 java 2d api 进行绘图。一些开发人员甚至使用现成的开源工具箱(如 jsci)来绘图。但很多时候,您的选择被限定在了 awt 或 swing 上。为了最大限度地减少对第三方工具箱的依赖,或者为了简化绘图基础,可以考虑使用 draw2d,并编写自己的代码来制图或绘图。

flash/swflash.cab#version=5,0,0,0 height=300 width=360 classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000>flashvars" value="">access" value="always">cgi?p1_prod_version=shockwaveflash' type='application/x-shockwave-flash' width='360' height='300'>
asp?p=/2006-4-28/7521230-36050.gif height=50>      幸运好时机,注册赢手机  
      2005 三星yepp夏季数码旅游风


  draw2d 简介

  draw2d 是一个驻留在 swt composite 之上的轻量级窗口小部件系统。一个 draw2d xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">实例 由一个 swt composite、一个轻量级系统及其内容的图形组成。xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">图形 是 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() {   double series1[] = new double[5];        for(int i=0; i<series1.length; i++)        series1[i] = (i*10) + 10; // a linear         series containing 10,20,30,40,50              double series2[] = new double[9];        series2[0] = 20; series2[1] = 150; series2[2] = 5;       series2[3] = 90; series2[4] = 35;  series2[5] = 20;                             series2[6] = 150; series2[7] = 5; series2[8] = 45;              double series3[] = new double[7];        for(int i=0; i<series3.length; i++)        series3[i] = (i*20) + 15;             seriesdata.add(series1);       seriesdata.add(series2);       seriesdata.add(series3);                   return seriesdata;  } 

  步骤 2:缩放技术 —— 从给定的数据生成 x 坐标和 y 坐标



一些新的术语

xmlns:xsi="http://www.w3.org/2001/xmlschema-instance">
figurecanvas
draw2d 中的 figurecanvas 是 swt canvas 的一个扩展。figurecanvas 可以包含 draw2d 图形。
panel
panel 是 draw2d 中的一个通用容器图形,它可以包含子图形。您可以向一个 panel 图形中添加许多图形,然后将这个 panel 图形提供给 figurecanvas。
directedgraph
directedgraph 是一个 2-d 图形,拥有有限数量的 node,每个 node 都位于一些 point 中,相邻的 node 是通过 edges 彼此连接在一起的。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范