0

在 Eclipse/SWT 或 Netbeans/Matisse 之间,Java GUI 编辑器在快速开发和可维护性方面为您提供了什么?

4

5 回答 5

5

您实际上是在问两个不同的问题:SWT 与 Swing,以及 Eclipse GUI 编辑器与 Netbeans GUI 编辑器 (Matisse)。

首先,SWT 和 Swing 之间的区别在于它们是两个根本不同的 GUI 库。这类似于询问 Tk 和 Win32 或 Java Swing 与 .NET Forms 之间的区别(并不是说 SWT 是 .NET)。那里有很多讨论 SWT 与 Swing 的讨论——我对 SWT 了解得不够多,无法总结它们的区别。

首先,让我说我的偏见是支持 Netbeans,而且我已经花了 10 年的时间来学习从 Forte 时代开始的 IDE。

就 GUI 编辑器而言,Eclipse 和 Netbeans 具有功能相似的产品,但以非常不同的方式实现代码。

我的观察是,Matisse 的行为、功能和生成的代码让人想起 Visual Studio .NET 代码。某些对象(例如 JTable)有明确的初始化部分和自定义行为。您可以“自定义”一个对象并通过 GUI 编辑器非常轻松地添加您自己的任意代码,用于从初始化到设置单个属性的所有操作。对于事件处理,它默认通过使用匿名内部类并调用独立方法来复制 .NET 中的“委托”。GUI 编辑器本身提供对表单对象模型的详细访问,并具有丰富的自定义设置。您还可以自由地将非 GUI bean 放入表单以供 GUI 组件使用,例如模型(tablemodel、listmodel 等)、JPA 相关对象、Worker 等。过去使用手工编码的 SWING 需要一周时间才能完成,而 Matisse 则需要一天时间(尽管您必须真正学习 Matisse 才能做到这一点)。如果您多年来一直在手动编码摇摆,那么重新学习使用 GUI 编辑器实际上,这将是一个漫长而艰难的课程。

代码在 Matisse 内部高度可维护;它不打算在 Matisse 之外进行编辑,但如果需要,代码适合编辑(我认识的许多人使用 Netbeans GUI,然后将源代码复制到 Eclipse 中)。

Eclipse GUI 编辑器是一个非常不同的生物。GUI 编辑器在整体功能方面大致相同,但我发现它们不够完善。布局能力大致相同,尽管有时错误不太宽容。一些自定义要求我转到源文件并直接编辑文件,而不是通过 GUI 访问代码自定义。生成的代码与马蒂斯非常不同。GUI 组件通过“getter”添加和初始化,分散在整个文件中;这很好,因为每个组件都被隔离/分组到一个函数中,但是当您需要诊断组件初始化之间的不良交互时很麻烦。事件处理程序也是如此——与 matisse 非常不同。

Eclipse 也没有为我编辑/破坏/篡改生成的 GUI 文件提供任何保护,因为 Netbeans 的保护几乎令人讨厌。就可维护性而言,Eclipse 代码可能更接近于人类生成 Java 代码的方式……就个人而言,我发现它生成的代码更难维护,但我从第一次开始就一直在研究 Matisse 生成的代码beta 所以我对这个问题的看法并不客观。

Netbeans 还能够使用相同的编辑器来构建 Swing 框架应用程序、Netbeans RCP 等……我不确定 Eclipse 是否也这样做。

于 2008-09-24T15:30:53.640 回答
0

这绝对是主观的——我们同时使用 Eclipse 和 Netbeans。我认为这归结为偏好问题。

于 2008-09-22T02:09:26.530 回答
0

没有人能告诉你哪个更好。这完全取决于每个开发人员。这是“Eclipse vs Netbeans”的谷歌搜索,您可以查看其他人已经倾注了他们的想法的一些优点和缺点。Eclipse 与 NetBeans

于 2008-09-22T02:17:38.647 回答
0

我认为您应该更多地研究您是否希望生成的应用程序是 SWT 或基于 Swing 的。使用哪个 IDE 应该是最不重要的因素。

我个人是 Eclipse 用户,但我听说过有关 Matisse 的好消息,所以如果我必须构建一个 Swing UI,我可能会考虑它。顺便说一句,如果您购买 MyEclipse,它集成了 Matisse。

于 2008-09-22T02:43:33.377 回答
0

有些人可能会争辩说,您想要使用的最终产品实际上取决于它的易用性 - 这在问题中有所暗示。

本文建议 Netbeans/Matisse 编辑器更易于使用 - 因此您应该在您的项目中使用它。 http://cld.blog-city.com/netbeans_matisse_versus_eclipses_visual_editor__no_contest.htm

于 2008-10-21T03:52:55.107 回答