专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » eclipsegef:[Eclipse]GEF入门系列(一、Draw2D) »正文

eclipsegef:[Eclipse]GEF入门系列(一、Draw2D)

来源: 发布时间:星期四, 2009年1月8日 浏览:101次 评论:0
  有关Java2D相信大家都不会陌生它是基于AWT/Swing 2维图形处理包 JDK附带举例向我们展示了Java2D十分强大图形处理能力在Draw2D出现以前SWT应用在这方面直处于下风而Draw2D这个SWT世界里Java2D改变了这种形势

  可能很多人还不十分了解GEF和Draw2D关系:些应用是只使用Draw2D看起来却和GEF应用具有相似外观原因是什么下面先简单解释下:

  GEF是具有标准MVC(Model-View-Control)结构图形编辑框架其中Model由我们自己根据业务来设计它要能够提供某种模型改变通知机制用来把Model变化告诉Control层;Control层由些EditPart实现EditPart是整个GEF核心部件有关EditPart机制和功能将在以后帖子里介绍;而View层(大多数情况下)就是我们这里要说Draw2D了其作用是把Model以图形化方式表现给使用者

  虽然GEF可以使用任何图形包作为View层但实际上GEF对Draw2D依赖是很强举例来说:虽然EditPart(org.eclipse.gef.EditPart)接口并不要求引入任何Draw2D但我们最常使用AbstractGraphicalEditPart类createFigure思路方法就需要返回IFigure类型由于这个原因在GEFSDK中索性包含了Draw2D包就不奇怪了同样道理只有先了解Draw2D才可能掌握GEF

  这样对于开始提出问题可以整理总结如下:Draw2D是基于SWT图形处理包它适合用作GEFView层如果个应用仅需要显示图形只用Draw2D就够了;若该应用模型要求以图形化方式被编辑那么最好使用GEF框架

  现在让我们来看看Draw2D里都有些什么请看下图



  图3 3种Router外观

  此外Draw2D在org.eclipse.draw2d.geometry包里提供了几个很方便类型如Dimension、Rectangle、Ins、Po和PoList等等这些类型既在Draw2D内部广泛使用也可以被开发人员用来简化计算例如Rectangle表示个矩形区域它提供getIntersection思路方法能够方便计算该区域和另矩形区域重叠区域、getTransposed思路方法可以得到长宽值交换后矩形区域、scale思路方法进行矩形拉伸等等在自己实现LayoutManager时候由于会涉及到比较复杂几何计算所以更推荐使用这些类



  以上介绍了Draw2D提供大部分功能利用这些我们已经能够画出十分漂亮图形了但对大多数实际应用来说这样还远远不够我们还要能编辑它并把对图形修改反映到模型里去为了漂亮完成这个艰巨任务GEF绝对是不 2的选从下次开始我们将正式进入GEF世界



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: