Java桌面应用程序框架

时间:2008-09-09 00:11:34

标签: java eclipse netbeans desktop platform

我正致力于设计和构建桌面应用程序。我正在考虑使用eclipse或netbeans作为此应用程序的基础。但是,我从未在这些平台上构建过。我个人倾向于使用netbeans,因为它像平台这样的接缝是一个更容易学习的曲线。但是,我想问一下那些实际上在这些平台上构建的人,之前哪个更容易使用?

我个人对轻松的定义如下:

  • 轻松入门

  • 一致且合乎逻辑的API

  • 良好的文档

  • 易于构建和部署

非常感谢,

约什

12 个答案:

答案 0 :(得分:6)

我不能说Eclipse RCP平台。我会推荐它用于任何Java桌面应用程序开发。

它是免费的,有很棒的教程,并允许使用本机OS窗口工具包的富桌面应用程序的跨平台开发,这意味着您的应用程序将在任何平台上看起来都是原生的。它还有一个干净的API,可以让你不受限制,并且可以在任何平台上进行部署。

如果您有兴趣,请查看此书:http://www.amazon.com/Eclipse-Rich-Client-Platform-Applications/dp/0321334612

答案 1 :(得分:2)

  • 易于使用:我有使用Eclipse开发的经验,我不得不说理解它的开发模型并不容易。当然,对于基本的东西,它有一些更容易的向导,但对于更复杂的东西来说,这很困难。我不知道Netbeans,但我听说它更容易。
  • 一致的API :我认为Eclipse在这方面获胜。它运行在OSGI上(虽然带来了一些复杂性)并且几乎所有内容都有插件扩展。它似乎是插件开发的首选平台,所以我认为它是可靠的。
  • 文档:Eclipse赢了。 eclipse网站的帮助非常好,邮件列表中有很多用户提问。

答案 2 :(得分:1)

我使用Eclipse作为框架基础,但它主要使用SWT--我们并没有真正使用大部分RCP。

这实际上取决于你所写的内容,但是从我从使用Eclipse学到的知识来看,它实际上只适合编写一个涉及使用各种视图编辑数据的应用程序(就像编辑代码一样)。

比任何更随机的东西都会导致你开始按照它未设计的方向推动框架并导致大规模失败。

答案 3 :(得分:1)

您将使用Swing开发应用程序,因为任何其他窗口框架仅在您具有先前知识或适当背景时才有用。

您可以依靠http://www.javadocking.com/来简化您的申请。

如果您的应用程序要求高度关注用户界面,那么您可以查看Adobe Air等其他方向。

答案 4 :(得分:1)

RCP有更大的学习曲线,但是一旦你学习了基础知识,Eclipse IDE本身就支持很好地构建RCP应用程序。我只为NetBeans构建了一个插件(没有构建完整的应用程序),学习曲线比RCP应用程序要小。本书Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications提供了构建RCP应用程序的详细介绍。

答案 5 :(得分:1)

请在http://www.eclipse.org/community/rcp.php之前查看一些开源应用程序,然后再认为RCP仅用于构建文本编辑器。感谢。

答案 6 :(得分:1)

答案 7 :(得分:1)

我已经完成了两项工作,但仅限于相对简单的应用程序。两者似乎都具有大致相同的能力。我个人更喜欢Netbeans平台,因为它对我来说更有意义。

您还应该考虑使用Swing应用程序框架JSR-296。它提供了构建Swing应用程序,管理应用程序资源,状态等的基本框架,但没有像Netbeans和Eclipse那样多的“包袱”。 Netbeans IDE有许多用于在SAF上构建应用程序的工具。有关详细信息,请参阅https://appframework.dev.java.net/

在不了解您的应用程序的情况下,很难指出两个平台的适当优势/劣势。

答案 8 :(得分:1)

我有类似的任务,我也在考虑不同的框架。我有一些Eclipse的经验(大约4个月开发RCP)和现在的Netbeans(玩了几天)。恕我直言这些框架太复杂了。您最终调试到特定于Eclipse的插件加载器,试图弄清楚为什么会得到ClassNotFoundException或NullPointer。与NetBeans相同的故事:只要你按照教程,某种程度上有点读取xml配置文件并从中创建UI,很酷。当然你不能使用其他IDE开发基于Eclipse的RCP,NB也非常嫉妒它的用法(除非你像我那样做一些黑客攻击)。 我缺少的是一种清晰的方法来调试我的线程从主要执行到动作。相反,我总是被告知我必须做些什么才能避免异常。因此,每当我想要拉新东西时,我都要保持手指交叉。它永远不会第一次运作。 现在我想到了我需要的功能,并且我寻找针对特定功能的小型项目,例如插件管理。还有很多。只需编译所需功能列表,然后通过将它们集成到项目中来开始添加更小的框架。这也很有意义,因为你的项目最终应该消耗更少的RAM。

答案 9 :(得分:1)

如果你真的想避免跨平台维护,那么使用Swing。这会为您购买所有平台。 RCP需要每个平台的本机库。

我们在Swing方面有过很好的经验。

答案 10 :(得分:0)

当你真的需要一个平台建立在顶部时,我会使用eclipse RCP,而不仅仅是像摇摆或swt这样的“widgetery”。 RCP坚如磐石,一致,模块化,非常灵活。掌握它之后,您将获得巨大的收益。作为一个平台,它为您提供最常用的东西 - 偏好,配置,自动更新,布局管理,品牌推广等等。您构建产品,而不是应用程序。但是学习曲线在开始时非常陡峭。

另一方面,摆动不是一个平台,你将通过编写我自己上面提到的东西来重新发明轮子。但是,是的,学习和开始学习的速度更快。我认为它适用于寿命较短的小型应用。

答案 11 :(得分:0)

在打开RCP仅用于构建内容之前,请查看http://www.eclipse.org/community/rcp.php处的一些开源应用程序。