前两天也是在javaEye中看到一位大哥关于gef中连线抗锯齿的文章,学习之后感觉效果不错,如果你也正在用gef这个框架开发东西,不妨把下面这些代码加入,一定会让你的连线视觉效果好些~~
protected void refreshVisuals() {
super.refreshVisuals();
//以下这些代码是设置连接线抗锯齿
ConnectionLayer connectionLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER);
connectionLayer.setConnectionRouter(new ShortestPathConnectionRouter(figure));
//new ManhattanConnectionRouter()只能画垂直和水平线
//new FanRouter()若两结点间有两条线,就把他们分开表示~~
if ((getViewer().getControl().getStyle() & SWT.MIRRORED ) == 0)
connectionLayer.setAntialias(SWT.ON);
Animation.run(400);
}
首先说下上面这段代码加到哪里,一般来说用gef画图都会有一个容器类,也就是包含其它所有图形模型的模型,这样的话序列化反序列化都会很容易。那么就在这个容器模型对应的EditPart中覆盖registerVisuals() 方法,加上上面这些代码就可以了~~~是不是很简单。。。
再说说draw2d中的连线路由器ConnectionRouter,连线路由器决定了图形之间连线的路线。主要有以下几种
1.AutomaticRouter,这是一个抽象类,要用的话得用它的实现类FanRouter ,这个路由会判断两结点间是否有重复线,有的话会把重复的线分开, 变成两条线~~
2.BendpointConnectionRouter,增加连接线的路由点 ,让你的连线有路由点,从而可以方便的改变方向
3. ConnectionRouter.NullConnectionRouter,这是默认的路由,没增加特殊功能,一般用null表示就行,如下面的代码设成connectionLayer.setConnectionRouter(null),就可以了。
4. ManhattanConnectionRouter,这个路由能保证画出来的线是垂直或水平的,如果你需要这样的效果就可以设置成这个路由。
5. ShortestPathConnectionRouter 最短路径路由器,这个路由还是比较强大的,可以方便的避免连线穿越结点,它会以最近的路径绕开其它结点,完成连线。
当然了,如果以上这些路由都不能满足你的要求,你可以自定义一个路由器,只要实现ConnectionRouter接口即可,详细教程请参考http://www.ibm.com/developerworks/cn/opensource/os-ecl-gef/part2/index.html。
希望对大家有帮助~~~欢迎一起探讨~~
分享到:
相关推荐
GEF(Graphical Editing Framework)和Draw2D是Eclipse项目中的两个核心组件,主要用于构建图形用户界面(GUI)特别是图形编辑工具。它们为开发者提供了强大的图形绘制和交互功能,使得创建复杂的图形编辑器变得简单...
在IT领域,特别是图形用户界面(GUI)的开发中,Draw2D和GEF(Graphics Editing Framework)是两个重要的开源库,主要用于构建可定制的、交互式的2D图形编辑工具。下面将详细介绍这两个库以及如何在实际项目中使用...
- **Draw2d**: 是Eclipse平台中一个重要的组件库,主要用于构建复杂的图形用户界面(GUI),尤其适用于需要绘制图形、节点等复杂结构的应用场景。通过Draw2d,开发者能够轻松地创建出具有专业级别的图形编辑器。 - ...
【GEF-ALL-3.7+GEF-ALL-3.8+GEF_Draw2d学习资料】是一份综合性的资源包,包含了GEF(Graphical Editing Framework)的3.7和3.8版本以及与其相关的Draw2D库的学习材料。GEF是Eclipse平台上用于构建图形化编辑器框架的...
Draw2d是Eclipse RCP(Rich Client Platform)框架中的一个子项目,专门用于2D图形绘制和交互。它提供了一套丰富的API,允许开发者在Java应用程序中创建、编辑和展示复杂的图形界面,尤其适用于创建流程图、图表和...
总之,Eclipse GEF和Draw2D是Eclipse生态中强大的图形编辑工具,结合RCP,可以创建出专业级的图形化应用程序。通过深入研究GEFAPI.CHM和draw2d_api-doc.CHM,开发者能够更好地掌握这两者的核心特性和用法,提升自己...
在这个"用draw2d画uml图源码实例"中,我们看到开发者利用GEF和Draw2D库创建了一个简单的UML类图绘制工具。下面将详细解释这两个技术以及如何结合它们来实现UML图的绘制。 1. **Draw2D**: Draw2D是Java Swing或 SWT...
Draw2d是Java图形库Swing或 SWT中的一个子库,主要用于创建2D图形和复杂的图形用户界面,尤其适用于绘制流程图、图表和其他图形结构。它提供了丰富的图形绘制功能,如线条、形状、文本和图像的处理,以及交互式操作...
eclipse插件框架,GEF之draw2d api,eclipse插件框架,GEF之draw2d api
GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子GEF的例子
【GEF-draw2d-sdk-3.6.1.zip】是一个包含图形编辑框架(GEF)和draw2d库的软件开发工具包,适用于Eclipse集成开发环境。该压缩包主要用于扩展Eclipse的功能,特别是在创建图形用户界面(GUI)和图形编辑应用方面。在...
GEF: Graphical Editing Framework <br>GEF是一套MVC Framework,它能帮你比较容易的建立图形化的编辑器,V(View)的部分常常是基于SWT的Draw2D,因此Draw2D也看作是GEF的一部分。依赖:org.eclipse.gef***, org...
在Eclipse的GEF(Graphical Editing Framework)框架中,Draw2d库提供了多种布局管理器,使得开发者能够灵活地设计和组织图形元素。本文将深入探讨Draw2d中的几种常见布局管理器,包括BorderLayout、ToolbarLayout、...
这是因为GEF的很多核心概念与API设计都是与Draw2D紧密相关的,尤其是它的`AbstractGraphicalEditPart`类中的`createFigure()`方法,要求返回的是Draw2D中的`IFigure`对象。因此,要深入理解和使用GEF,了解Draw2D的...
10. **样例代码(Sample Code)**:`samplecode.rar`很可能包含了实际的编程示例,这些示例可以帮助开发者理解如何在实践中应用GEF和DRAW2D,例如创建自定义图形元素、实现特定的编辑操作等。 通过深入学习和实践...
这是我参考了一些其他资料,自己写的一个GEF示例...1. 在你的Eclipse中要有GEF, Draw2d的包 2. 将此压缩包中的eclipse project引入到你的Eclipse环境中 3. 运行这个插件 4. 看到界面后,点击 Tools -- Open GEF Editor
- **Draw2D**:Draw2D是GEF的一部分,主要负责绘制图形元素。 - **EMF**:EMF(Eclipse Modeling Framework)是一个用于创建模型驱动的应用程序的框架,与GEF结合使用时能够处理复杂的模型数据。 #### 三、开发环境...
这两篇文章可能分别由CSDN博主和博客园博主分享了他们在使用GEF和相关技术,如Draw2D(用于在GEF中绘制2D图形的库)时的经验和技巧。 在深入理解GEF时,我们需要关注以下几个核心概念: 1. **模型-视图-控制器(MVC...
在图形编辑框架(Graphical Editing Framework,简称GEF)中,悬空连线是一种常见的功能,它允许用户在图形画布上创建未连接到任何端点的连接线,以表示潜在的连接关系。这类连线通常在用户尝试建立节点之间的连接时...
Eclipse GEF(Graphical Editing Framework)插件是Eclipse IDE中的一个重要组成部分,它为开发者提供了构建图形化用户界面和图形化编辑器的强大工具。在Eclipse IDE中,GEF主要用于创建模型驱动的设计环境,例如...