富客户端平台与JavaFX 2与Swing相比

时间:2011-11-15 12:06:51

标签: java swing user-interface rcp javafx-2

现在很快,我们需要为我们的EAI解决方案开发一个用于创建配置的GUI(更像是脚本,说实话)。想想典型的工作流编辑器。实际流程的可视化很可能是一个完全自定义的工作,无论是在Swing,SWT还是JavaFX 2.我选择的麻烦在于是自己做其他事情还是使用富客户端平台。

特别是,我注意到JavaFX 2受到了很多关注,并且似乎被Oracle推动为Java GUI领域的下一个重点。演示看起来很有趣,也许这个更新的API更加注重生产力,而不是Swing倾向于强加的大量样板代码。使用获得大量支持的新技术似乎是未来维护的安全选择。

使用RCP对这个项目有一定的好处。无论我们是以Eclipse还是NetBeans作为平台,拥有用于查看底层(XML)配置,版本控制等的现有插件/模块都能以最少的工作提供强大的功能。我也喜欢在同一个GUI中将Java项目旁边的软件项目类型包含在内的想法。即使是简单的东西,如窗口管理和自定义排列面板,也可以通过RCP更好地处理我们可以鞭打的东西。

现在的问题是,什么技术或其组合是可行的?据我所知,我的选择是:

  • 的Eclipse。不过,我不太喜欢使用SWT,因为我对Swing更熟悉。 NetBeans也是我的主要IDE,我对它最熟悉。它总是感觉更直观。
  • 的NetBeans。这将允许在Swing中开发自定义组件。我的学习曲线较低。
  • NetBeans + JavaFX 2.这个想法吸引我......使用NetBeans实现RCP优点并将JavaFX 2用于自定义组件。 JavaFX 2显然与Swing集成,但在NetBeans中如何做到这一点呢?
  • Swing或JavaFX 2.让所有GUI自己工作或使用一些现有的框架来获取RCP提供的大部分内容。这似乎很多工作,但也提供了极好的控制。我有点厌恶在Swing中尝试这个。 JavaFX 2在这方面的表现如何?

基本上我唯一的GUI体验是在小型应用上使用Swing。这是我第一次寻找能保证RCP的东西。但JavaFX 2似乎是前进的方向,我不想错过那条船。如果Swing可能即将退出,我宁愿跳上新技术。

如果有人可以分享他们的经验,尝试过像NetBeans + JavaFX 2这样的东西,或者更接近JavaFX的最前沿,并且可以推荐/阻止它用于我最感兴趣的这类事情。

我意识到这是一个有点开放的问题,但我真的不能想到一个更合适的地方。我不是在寻找“什么是最好的RCP / JavaFX比Swing更好”的辩论。我正在寻找在这种情况下使用/反对它们的有效点。

3 个答案:

答案 0 :(得分:11)

我的意见很少,

JavaFX2可以集成到Swing和SWT应用程序中的面板/容器中。

Swing没有提供一个结构化的架构来处理多组件应用程序,Eclipse RCP确实如此,但它更重,有时太复杂(WindowWorkbench等......)并且很难定制。

如果您的团队(开发人员或平面设计师)中有一个优秀的UI设计师,您应该开始使用一个简单但功能强大的框架(如JRebirth或您可以按照自己的方式构建的自定义)的应用程序Full JavaFX2。

JavaFX将成为未来几年的Java UI标准,它可能不是一个糟糕的选择,因此它的架构非常好而且功能强大 此外,借助JNLP,javaFX2可用于浏览器和/或在线部署。 不要打扰你学习复杂的无证框架(如EclipseRCP),创建你的!并可以自由地提供客户需要的应用程序:D

我在Swing Appz工作了3年,在Eclipse RCP工作了2年,在Flex / Silverlight / JavafX应用程序工作了2年

答案 1 :(得分:7)

这里有一些观点和(个人)意见,可帮助您确定适合当前情况的解决方案:

Eclipse与Netbeans

就个人而言,我不喜欢有关IDE优缺点的大讨论。只需使用您感觉最舒适的那个。如果您在团队中工作,请进行投票。考虑Swing两个IDE都很好(恕我直言Netbeans有更好的GUI构建器)。考虑到JavaFX 2.0,两个IDE都很好,但两者都缺少GUI构建器。我不建议混合使用IDE。

JavaFX 2.0 vs. Swing vs. SWT vs. Eclipse RCP

嗯,我不 - 我甚至不能 - 想告诉你上面列出的哪种UI技术是最好的,因为我对你的项目环境不太了解 - 经验,人力资源,预算,时间表等拥有精益时间表和经验丰富的Swing开发团队(?)应该决定Swing。 SWT和Eclipse RCP也是如此。最前沿的开发人员可能倾向于尝试JavaFX。我同意,JavaFX得到了很多关注,你会得到很棒的演示,但请记住,使用JavaFX需要 - 除了JRE - 每个客户端上的JavaFX运行时。

希望这有帮助。

答案 2 :(得分:0)

由于FXML使用我们切换到javaFx,你可以使用MVC模式,你可以添加javascript和css init,但是在更改页面时看起来很慢