将基于Swing的开发工具插入Eclipse中 - 编程入门网
将基于Swing的开发工具插入Eclipse中时间:2011-03-23 IBM Terry Chan引言 Eclipse Platform 为工具开发提供一组健壮的服务和 API。它使来自完全不同的供应商的工具之间的集成变得平滑,为不同类型的开发工作创建了一个无缝的环境。 Eclipse Platform 的软件组件之一就是 SWT。尽管 SWT 不是 Platform 的一个核心组件集,但它还是不可或缺的,因为它为产品和插件开发者提供了一组基于 Java 的 GUI 小窗口。SWT 与操作系统无关且非常方便,然而它的底层 JNI 接口将展现本机平台的外观和感觉(look-and-feel)以及性能。 总体上讲,对于那些想要编写在 Platform 的各种框架中运行良好且视觉上有吸引力的插件的开发者和供应商来说,SWT 提供了一个优秀的解决方案。然而,SWT 与 Java 的 Swing GUI 小窗口之间的互操作性程度相当低,这一点对 SWT 影响很大。例如,Swing 和 SWT 使用完全不同的事件处理机制。这个差异常常会使由 Swing 和 SWT 共同组成的 GUI 不可用。 为了在 Swing 和 SWT 之间提供一个接口以便提供可接受级别的兼容性,我们已经做了一些工作,比如使开发者能够将 Swing 小窗口嵌入到 SWT 中的 org.eclipse.swt.internal.swt.win32.SWT_AWT 实用程序类。但是,这些方法仍然是实验性的,尚未获得官方支持 — 由此包名内含有“internal”。 这个拙劣的互操作性对于 Eclipse 项目和工具供应商来说,都是令人遗憾的障碍。目前,大量软件开发和测试工具提供用 Swing 编写的用户界面。将一个带有复杂的 Swing GUI 的现有工具移植到 SWT 需要来自供应商的相当多的时间和投资。尽管 Eclipse Platform 具有了所有先天的优势,但是 Swing 和 SWT 之间拙劣的互操作性导致开发成果不那么吸引人。 本文向您说明了如何实现下列操作: 启动一个基于 Swing 的编辑器以编辑 Eclipse Platform Workbench 中任何名为“ThirdParty.java”的 Java 文件 将 Swing 编辑器中所作的源代码更改带回到 Workbench 中 使用 Preference Page 框架控制 Swing 编辑器的属性 使 Swing 编辑器成为“Workbench 知晓的” 从 Swing 编辑器中启动一个 SWT 小窗口 本文引入了一些简单的技术来实现上述操作,无需使用任何不被支持的 API。我们不引用任何内部类并且遵守所有通用的插件规则。为了最有效地使用这些技术,您应该具有编写插件和使用插件开发环境(Plug-in Development Environment)的基本知识,您还应该具有对基于 Swing 的编辑器的源代码的访问权。 假定的 Swing 编辑器:Ed 为了模拟真实的各种工具集成的情况,我们来使用一个假定的基于 Swing 的编辑器(名为“Ed”)。下面是 Ed 的一些特征: Ed 是基于 Swing 的编辑器。 Ed 继承了 JFrame。 Ed 只处理具有特定名称 ThirdParty.java 的 Java 文件上。 Ed 用一个 JEditorPane和一个 JButton作为私有域。JEditorPane 显示 ThirdParty.java 的所有源代码。 JButton保存源代码。 Ed 是带有一个 main() 方法的独立的 Java 应用程序。 Ed 被设计为在命令提示符下运行。它并不知晓 Eclipse Platform Workbench。 将基于Swing的开发工具插入Eclipse中(2)时间:2011-03-23 IBM Terry Chan基本概念 由于 Swing 和 SWT 互操作性的限制,难以获得这二者之间的直接通信(如事件处理)。在既不使用不被支持的 API 也不服从任何插件开发规则的情况下,实现这个目的的一条途径就是避免它们彼此嵌入,取而代之的是让它们拥有独立的 Frame。插件类(或者说 Singleton 实用程序类)将处理它们之间的通信,如 图 1所示。例如,Ed 上的 JButton 可以使一个 SWT Shell 出现,显示已编辑的 ThirdParty.java 的一些特定于 Workbench 的属 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |