将基于Swing的开发工具插入Eclipse中

引言

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。

时间: 2024-09-29 21:23:35

将基于Swing的开发工具插入Eclipse中的相关文章

十大基于Docker的开发工具

随着Docker的发展,Docker的生态圈也越来越成熟,GitHub上出现了很多与Docker相关的开源项目.近日,CenturyLink在其博客上总结了基于Docker的10个开发工具,主要集中在http://www.aliyun.com/zixun/aggregation/14123.html">PaaS平台.集群管理.持续集成和Docker的管理工具等四个方面.InfoQ中文站在其基础上进行了整理,具体如下. Flynn Flynn是一个使用Go语言编写的开源PaaS平台,Flyn

Doxygen自动文档生成工具在Eclipse中的集成及使用举例

你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的办法呢?比如根据代码注释自动生成详尽的说明文档--可能有人会说用Javadoc就是 了,要是C/C++.Python.C#等语言写的软件呢?有没有类似Javadoc的东西? Yes,当然有,Doxygen就是这样一个能满足你需求的工具.Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的

Nuclide 0.232.0 发布,基于 Atom 开发工具集

Nuclide 0.232.0 已发布,Nuclide 是 Facebook 推出的一套基于 Atom 的开发工具集.用于开发基于 Hack 的 Web 应用.提供自动完成和 JavaScript 类型检查,内建 React 开发支持,并支持 Facebook 最新的 React Native 库,支持 Facebook 的 Flow JavaScript 类型检查器. 更新内容: Fixed format-on-save throwing exceptions when saving whil

使用Codan在Eclipse中执行C/C++分析工具

Alex Ruiz 解释了为什么该更新对于 http://www.aliyun.com/zixun/aggregation/13428.html">Eclipse CDT 用户来说是一个好消息,然后展示了如何使用 Java 代码和少许 XML 快速将您最喜爱的代码检查器集成到 Eclipse C++/C++ 开发环境中. Codan 是在 C/C++ 项目上执行代码检查的代码分析框架.自 2011 年起,Codan 已成为 Eclipse CDT(C/C++ 开发工具)一部分,它不仅提供执

java初学者常用开发工具介绍

初学 Java的应用越来越广泛,学习Java的人也越来越多.学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic.Visual Basic等开发工具:使用C语言进行程序设计,可以使用Turbo C.Visual C++.C++ Builder等开发工具.这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用.学习Java程序设计,同样需要方便易用的开发工具.Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑.本

《Java程序员面试秘笈》—— 面试题4 列出你熟悉的Java开发工具

面试题4 列出你熟悉的Java开发工具 考点:该问题一般会在面试时出现,主要是看求职者是否熟悉常用的Java开发工具,因为一个项目开发团队会使用一种固定的开发工具,只有求职者能够熟练使用该工具,才能够快速融入该团队. 出现频率: [面试题解析]Java作为一种跨平台开发语言,由于其开源性,各个公司和社区组织,都推出了各自的Java开发工具,这也是Java开发体系同微软的开发体系的区别之一.不同的项目开发团队一般都有自己熟悉的开发工具或者开发环境,求职者只有熟练使用不同的开发工具,才能适应项目开发

eclipse插件-如何在eclipse中集成jad反编译工具

问题描述 如何在eclipse中集成jad反编译工具 在eclipse中怎么集成jad反编译这个插件,下载哪个版本的jar包,与eclipse的版本有木有什么冲突??求大神指点!! 解决方案 参考这个来吧.http://www.blogjava.net/sy1214520/archive/2008/06/20/209371.html 解决方案二: eclipse中集成jad 为啥你不相信百度呢 解决方案三: http://blog.csdn.net/sushengmiyan/article/de

Windows Phone 7 开发工具介绍

Windows Phone 7 开发工具介绍 在今天的 MIX10会议上,我们推出了 Windows Phone 7 系列开发故事.开发 Windows Phone 7 系列开发的核心技术是 Silverlight. 这使您能够使用您现有的开发技能来构建 Windows Phone 7 的应用程序. 现在您可以在这里下载到微软的 Windows Phone 7系列开发工具包--Windows Phone 开发工具CTP版本. Windows Phone开发工具CTP版本包含了所有您需要的开始Wi

如何在Eclipse中自动添加注释和自定义注释风格

在无论什么项目中,注释都是不可缺少的,注释的种类和风格非常之多,每个公司有每个公司自己的一套标准,中大型项目一般写注释是为了自动生成文档便于维护,比如Java自带的Javadoc.功能更强大使用更广泛的Doxygen(Doxygen自动文档生成工具在Eclipse中的集成及使用举例)等.注释的任务其实挺繁重的,总以为自己在做着无意义的事,每次重复的写着统一的注释风格更是费时费力.Eclipse用的很熟的都知道Eclipse里自带了某些注释风格,但并不一定适用于你的标准,因此如何自定义注释风格然后