- 浏览: 149525 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
EclipseEye:
fair_jm 写道不错 蛮详细的 谢谢分享
SWT/JFace专题 --- SWT中Display和多线程 -
fair_jm:
不错 蛮详细的 谢谢分享
SWT/JFace专题 --- SWT中Display和多线程
在GEF中,有直接编辑策略,实现直接编辑的功能不是什么难事。但,
如何在Draw2d中实现直接编辑框的功能呢?
思路:用一个带有Text的Shell,实现直接编辑框的功能。
关键点:Shell的大小设置(关系到该框的外观);Shell的位置设置(关系到是否达到直接编辑框的效果);
例子代码:
如何在Draw2d中实现直接编辑框的功能呢?
思路:用一个带有Text的Shell,实现直接编辑框的功能。
关键点:Shell的大小设置(关系到该框的外观);Shell的位置设置(关系到是否达到直接编辑框的效果);
例子代码:
private Shell textshell;//可以定义一个全局变量,保证该编辑框的唯一性 private void createTextShell(String oldTextValue){ Point point = getRealLocation();//关键点1:shell的位置设置----该方法本文后面有说明 if (textshell == null || textshell.isDisposed()) { textshell = new Shell(Display.getCurrent().getActiveShell(), SWT.NONE); } textshell.setLocation(point.x, point.y); textshell.setSize(110, 20); //关键点2:shell的大小和text的大小设置,根据需要设置合适的大小 final Text text = new Text(textshell, SWT.BORDER);//在Shell中定义text text.setSize(110, 18); text.setText(oldTextValue); text.setFont(FontFactory.getFont("Arial", 9, SWT.BOLD));//设置text中的字体,FontFactory是自己定义的类,用户可以定义,这里不讨论 text.setSelection(0, text.getText().length());//设置text的选中字符,比如这里就是全选 text.addFocusListener(new FocusListener(){ @Override public void focusGained(FocusEvent e) { } @Override public void focusLost(FocusEvent e) { //可以在这里,就是失去焦点的时候把合法的值提交 } }); text.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { //可以在这里对Text框中输入字符的合法性进行判断 } }); textshell.open();//别忘了打开shell } private Point getRealLocation(){//得到编辑框的位置,使得该框正好覆盖在在Draw2d的Figure上,实现直接编辑的功能 Shell parentShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); int pgx = parentShell.getLocation().x; int pgy = parentShell.getLocation().y;// 1.shell相对于window窗口的坐标。 //利用该pgx,pgy,当移动RCP的窗口时,使得编辑框始终覆盖在对于的Figure上 Point point = getLocation(); //2. getLocation()是Draw2d中Figure类的方法,这里得到的point就是要实现直接编辑功能Figure的位置 FigureCanvas fCanvas = ...//这个是Draw2d的最顶层的Canvas容器,在你自己的项目中找到它,目的是获得滚动条的位置 int xSel = fCanvas.getHorizontalBar().getSelection(); int ySel = fCanvas.getVerticalBar().getSelection(); //3. 滚动条坐标 //xxx,yyy,就是根据自己RCP实际窗口的位置及Figure在整个窗口视图中的位置继续调整的数据,可以自己设置, //直到实现该text刚好覆盖在Figure上面,实现直接编辑的功能 int realx = pgx +point.x - xSel + xxx; int realy = pgy+point.y- ySel + yyy ; point = new Point(realx, realy); return point; }
发表评论
-
再说SWT中的滚动面板ScrolledComposite实现
2013-06-19 15:43 2329记得以前写过一篇关于滚动面板的文章 SWT中 Scrolle ... -
OSGi参考资料
2013-04-18 01:11 684基于 OSGi 的面向服务的组件编程 探索 OSGi 框架的组 ... -
CDT(编辑、调试)参考资料
2013-04-17 02:15 1115CDT编辑器 --------- 构建基于 CDT 的编辑器, ... -
Workspace Resource框架专题(3)处理工作空间资源更改事件
2013-04-17 01:44 13803 处理工作空间资源更改事件 工作空间API允许工具对它 ... -
Workspace Resource框架专题(2)workspace 框架API
2013-04-17 01:27 14922 工作空间API 本 ... -
Workspace Resource框架专题(1)Resource的概念
2013-04-17 01:12 13941 Resource的概念 如 ... -
如何恢复断点及Marker
2013-03-05 00:41 0如何恢复断点及Marker -
深入Workbench框架
2013-03-01 02:10 1730深入Workbench框架(结合UIPersistent) 1 ... -
Eclipse插件开发中的Action
2013-02-24 23:10 2006插入点用来定义菜单出 ... -
Eclipse开发中编辑器(Editors)和视图(View)总结
2013-02-24 22:58 29141.视图(Views) 视图( ... -
SWT/JFace专题 --- 对话框向导(Dialogs Wizards)
2013-02-24 22:42 2244对话框向导(Dialogs Wizar ... -
SWT/JFace专题 --- JFace
2013-02-24 22:37 1645JFace JFace是基于SWT的一套图形工具包,它没有为 ... -
SWT/JFace专题 --- SWT中Display和多线程
2013-02-24 15:25 3242Display 1.Display 的创建 一个SWT程序 ... -
SWT/JFace专题 --- SWT API 结构
2013-02-23 18:31 1081SWT API 结构 1.布局类(l ... -
Eclipse启动过程(源码级剖析)
2013-02-20 03:24 3423双击eclipse安装目录下的eclipse.exe运行后,会 ... -
SWT/JFace专题 --- SWT结构浅析
2013-02-23 17:02 1025SWT技术是一套基于Java的 ... -
Eclipse平台体系结构
2013-02-21 23:56 18951.Eclipse平台体系结构 1 ... -
RCP平台架构
2013-02-23 14:11 1489RCP 富客户端通常是指具有独立用户界面的客户端程序。富客户 ... -
Ant构建脚本相关
2013-02-18 01:26 0Ant构建脚本相关 -
CDT源码架构研究
2013-02-18 01:24 0CDT源码架构研究
相关推荐
在IT领域,特别是图形用户界面(GUI)的开发中,Draw2D和GEF(Graphics Editing Framework)是两个重要的开源库,主要用于构建可定制的、交互式的2D图形编辑工具。下面将详细介绍这两个库以及如何在实际项目中使用...
Draw2D是Eclipse平台下的一种轻量级图形用户界面工具包,它提供了一系列用于构建复杂图表、文档或绘图的功能组件,这些组件被称为“Figure”。不同于传统的GUI组件,Figure在操作系统级别上没有对应的资源,它们完全...
在Eclipse插件开发中,Draw2D是构建定制视图和编辑器的理想工具,可以用于创建具有复杂图形界面的开发工具。 总之,SWT Draw2D提供了一套强大的2D图形绘制框架,它结合了SWT的高性能和丰富的图形功能,为Java...
确保你已经安装了Eclipse IDE,并且导入了相关的插件如GEF(Graphical Editing Framework),因为Draw2d通常与GEF一起使用,为用户提供图形编辑功能。你可以通过Eclipse Marketplace或者更新站点来安装这些插件。 ...
`draw2d` 是一个功能强大的JavaScript库,专门用于在Web环境中创建和编辑图形界面。它以其无需依赖VML或SVG技术,仅采用纯JavaScript实现而备受青睐。在这个详尽的解析中,我们将深入探讨`draw2d`的核心特性、优点、...
总之,Eclipse GEF和Draw2D是Eclipse生态中强大的图形编辑工具,结合RCP,可以创建出专业级的图形化应用程序。通过深入研究GEFAPI.CHM和draw2d_api-doc.CHM,开发者能够更好地掌握这两者的核心特性和用法,提升自己...
在图形用户界面(GUI)开发中,布局管理器扮演着至关重要的角色,它负责决定组件在画布上的位置和大小。在Eclipse的GEF(Graphical ...在GEF中,理解并灵活运用Draw2d布局器是构建高效图形编辑器的关键步骤之一。
《Draw2D在Windows编程中的应用——Java实现详解》 Draw2D,全称为FreeHEP Draw2D,是Java图形库中的一部分,主要用于二维图形的绘制和展示。它提供了丰富的图形元素和交互功能,是开发图形用户界面,尤其是进行...
10. **样例代码(Sample Code)**:`samplecode.rar`很可能包含了实际的编程示例,这些示例可以帮助开发者理解如何在实践中应用GEF和DRAW2D,例如创建自定义图形元素、实现特定的编辑操作等。 通过深入学习和实践...
在章节20和21中,主要讲解了两个关键知识点:富客户端平台(RCP)技术和Draw2d图形库。 20第20章 富客户端平台(RCP)技术: Eclipse的富客户端平台(Rich Client Platform)提供了一种构建桌面应用程序的框架。这...
4. **图元工厂(Figure Factory)**:图元工厂是Draw2D的一部分,它提供了创建和管理图形元素的标准方法,简化了图形编辑器的开发过程。 5. **模型(Model)**:在GEF中,模型通常由用户自定义的数据结构组成,可以...
这两篇文章可能分别由CSDN博主和博客园博主分享了他们在使用GEF和相关技术,如Draw2D(用于在GEF中绘制2D图形的库)时的经验和技巧。 在深入理解GEF时,我们需要关注以下几个核心概念: 1. **模型-视图-控制器(MVC...
4. **图元类**: 实现`org.eclipse.draw2d.Figure`,定义图形元素的外观和行为。 5. **适配器类**: 连接模型和视图,通常实现`org.eclipse.gef.EditPolicy`接口,定义特定编辑策略。 6. **命令类**: 实现具体操作的...
`org.eclipse.draw2d.Figure` 是所有图元的基类。 5. **EditPart**: 将模型对象与视图元素关联起来,`org.eclipse.gef.EditPart` 是所有编辑域的基类。 **四、主要功能** 1. **图形化编辑**: GEF提供了一套完整的...
例如,增加鼠标交互功能,让用户能够直接在栅格上进行像素级别的操作,或者结合其他图形库和动画库,实现更多动态效果。总的来说,MidpointRaster是一个实用的工具,为网页上的像素艺术和复古风格的图形渲染提供了...