Java桌面应用程序框架

时间:2020-03-05 18:49:44  来源:igfitidea点击:

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

我对easyr的个人定义如下:

  • 易于上手
  • 一致的逻辑API
  • 好的文档
  • 易于构建和部署

非常感谢,

乔希

解决方案

回答

我已经使用Eclipse作为框架基础,但是它主要只是使用SWT-我们并没有真正使用很多RCP。

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

任何可能导致我们开始将框架推向非设计方向并导致大量失败的随机性。

回答

我们将使用Swing开发应用程序,因为任何其他窗口框架仅在我们具有先验知识或者适当背景的情况下才有用。

我们可以依靠http://www.javadocking.com/来简化应用程序。

如果应用程序需求高度关注用户界面,则也许我们可以朝另一个方向发展,例如Adobe Air。

回答

  • 易于使用:我有在Eclipse上进行开发的经验,不得不说理解其开发模型并不容易。当然,对于基本的东西来说,它具有一些使向导更容易的向导,但是对于更复杂的东西来说,这只是困难。我不了解Netbeans,但我听说它比较容易。
  • 一致的API:我认为Eclipse在这方面胜出。它运行在OSGI之上(虽然带来了一些复杂性),并且具有几乎所有内容的插件扩展。它似乎是插件开发的首选平台,因此我可以假设它是可靠的。
  • 文档:到目前为止,Eclipse占了上风。来自eclipse网站的帮助非常出色,邮件列表中有大量的用户问题。

回答

关于Eclipse RCP平台,我还不能说清楚。对于任何Java桌面应用程序开发,我都会推荐它。

它是免费的,具有出色的教程,并允许使用本机OS窗口工具箱的富桌面应用程序进行跨平台开发,这意味着应用程序将在任何平台上看起来都是本机的。它还具有一个干净的API,不会让我们烦恼,并且可以轻松地将其部署到任何平台。

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

回答

RCP的学习曲线更大,但是一旦我们学习了基础知识,Eclipse IDE本身就很好地支持构建RCP应用程序。我只为NetBeans构建了一个插件(未构建完整的应用程序),并且学习曲线比RCP应用程序要小。 Eclipse Rich Client Platform:设计,编码和打包Java(TM)应用程序一书详细介绍了如何构建RCP应用程序。

回答

在认为RCP仅用于构建文本编辑器之前,请参阅http://www.eclipse.org/community/rcp.php上的一些开源应用程序。谢谢。

回答

Eclipse RCP简介。

回答

我对两者都做了一些工作,但仅在相对简单的应用程序上进行过。两者似乎具有大致相等的功能。我个人更喜欢Netbeans平台,因为它对我来说更有意义。

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

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

回答

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

回答

当我们确实需要在其上构建平台而不是仅仅像swing或者swt之类的" widgetery"时,我会使用Eclipse RCP。 RCP坚如磐石,一致,模块化且非常灵活。一旦掌握了它,我们将获得巨大的利益。作为一个平台,它为我们提供了最常用的东西偏好,配置,自动更新,布局管理,品牌以及类似的东西。我们构建的是产品,而不是应用程序。但是,一开始的学习曲线非常陡峭。

另一方面,Swing不是平台,我们将通过编写我自己在上文中提到的东西来重新发明轮子。但是,是的,挥杆学习和入门起来更快。我认为它更适合寿命较短的小型应用。

回答

如果我们真的想避免跨平台维护,请使用Swing。这将为我们购买所有平台。 RCP需要每个平台的本机库。

我们在Swing方面拥有良好的经验。