网站首页 > 教程分享 正文
虽然Eclipse图形编辑框架(GEF)15年来都是Eclipse生态系统的公民,但自从Eclipse Oxygen开发流程以来,“GEF4“就被替换成了“GEF”,而从2002年开始的旧代码库现在被称为“GEF-Legacy”。随着Oxygen发布的最新版图形编辑框架将是GEF 5.0.0。
GEF提供了一些新功能,但它主要是开发图形丰富的客户端应用程序的框架,集成到Eclipse UI或独立应用程序中。虽然对可实现的图形应用程序的类型确实没有限制,但是在构建图形视图和编辑器(节点,边框,标签)时,有各种默认设置使其特别方便。
该框架伴随着许多示例证明其用途,最突出的是MVC Logo和Zest Graph示例,分别用于渲染几何和图形。
上图显示了MVC Logo示例。它显示了GEF提供的以下功能:
整合到Eclipse UI(作为IViewPart)
工具栏的快速操作(缩放,滚动)
具有背景网格的无限画布(也支持对齐网格)
拍摄和对准反馈(红线)
选择反馈和手柄(蓝色方块)
反馈和处理(“x”和“加号”)
渲染任意几何形状和曲线
内容渲染,反馈和处理(操纵)
该框架与JavaFX相结合作为渲染技术,因此程序员得到了现代渲染框架支持的所有功能:场景图API,CSS样式,动画,效果等。GEF还增加了其他概念,如视觉锚和连接,它们在图表上下文中非常有用,并确保了JavaFX和SWT的无缝集成。该框架还提供了一个全面的几何API,其中包含几何形状和曲线的抽象。所有这些都在MVC Logo示例中使用:字母和连接实际上是从形状和曲线几何渲染的,视觉锚连接到形状,因此自动计算(并更新)交点。
基于GEF的应用程序花了程序员很多精力,除了鼠标和键之外,触控手势也得到了支持,所有GEF应用都遵循“及时反馈”的原则,确保用户交互直接反映。当通过移动其路点来操纵连接时,例如,连接将自动“跟随”手柄移动,因此可以直接观察到所得到的状态。
通常提供三个基本操作来改变可视化以及底层数据模型:转换,调整大小和弯曲(即重新整形),特定于某些交互场景(如“弯曲”)提供进一步的交互功能。
正交路由连接可以通过其段进行操作:蓝色矩形手柄可用于移动(或移除)段,白色矩形句柄可用于拆分段。
相反,直线路由连接可以通过其路点进行操作:蓝色圆形手柄可用于移动路点,而白色圆形手柄可用于插入新的路点。
除此之外,GEF还提供图形数据模型,相应的渲染器和集成的自动布局。这些都在Zest Graph示例中演示:
这里还有一个很好的免费教程由itemis提供:https://info.itemis.com/en/gef/tutorials/
有关GEF的更多信息,可以访问Github开源地址(GEF@ GitHub:https://github.com/eclipse/gef;GEF @ Eclipse:https://www.eclipse.org/gef/)
猜你喜欢
- 2024-09-29 JavaFX-实现画圆弧(java 画圆)
- 2024-09-29 JavaFX文件选择器(java 文件选择器)
- 2024-09-29 JavaFx 实现按钮防抖和软件重启(Kotlin)
- 2024-09-29 JavaFX学习笔记017(单选按钮和复选框)
- 2024-09-29 JavaFX 折线图(java swing 折线图)
- 2024-09-29 JavaFX学习笔记014(菜单栏)(javafx包含功能)
- 2024-09-29 JavaFX 文本字段(javafx 文本编辑器)
- 2024-09-29 JavaFX学习入门篇,想用Java写窗口应用的同学可以看看
- 2024-09-29 JavaFX 滑块(javafx scrollpane)
- 2024-09-29 javafx做的航天事件管理系统(javafx做的航天事件管理系统有哪些)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)