我有一个非常大的程序,目前正在使用SWT.该程序可以在Windows,Mac和Linux上运行,它是一个包含许多元素的大型桌面应用程序.现在SWT有点老了我想切换到Swing或JavaFX.我想听听你对三件事的看法.
我主要担心的是桌面GUI应用程序会有什么好处?(我在网上看了很多人都认为JavaFX和Swing一样好,但除了简单的意见火焰战争之外我没有看到很多有效的论据).它必须适用于Windows,Mac和一些流行的Linux发行版.
什么更干净,更容易维护?
从头开始构建什么会更快?
我在我的应用程序中使用MVC方法,如果有任何帮助的话.
很快,我们需要开发一个GUI来为我们的EAI解决方案创建配置(更像是脚本,说实话).想想典型的工作流编辑器.实际流程的可视化很可能是一个完全自定义的工作,无论是在Swing,SWT还是JavaFX 2.我选择的麻烦在于是自己做其他事情还是使用富客户端平台.
特别是,我注意到JavaFX 2受到了很多关注,并且似乎被Oracle推动为Java GUI领域的下一个重点.这些演示看起来很有趣,也许这个更新的API更专注于生产力,而不是Swing倾向于强加的大量样板代码.使用获得大量支持的新技术似乎是未来维护的安全选择.
使用RCP对这个项目有一定的好处.无论我们是以Eclipse还是NetBeans作为平台,拥有用于查看底层(XML)配置,版本控制等的现有插件/模块都能以最少的工作提供强大的功能.我也喜欢在同一个GUI中将Java项目旁边的软件项目类型包含在内的想法.即使是简单的东西,如窗口管理和自定义排列面板,RCP也可以更好地处理我们可以提供的东西.
那么现在的问题是,哪种技术或其组合是可行的?据我所知,我的选择是:
基本上我唯一的GUI体验是Swing上的小应用程序.这是我第一次寻找能保证RCP的东西.但JavaFX 2似乎是前进的方向,我不想错过那条船.如果Swing可能会出局,我宁愿跳上新技术.
如果有人可以分享他们的经验,尝试过像NetBeans + JavaFX 2这样的东西,或者更接近JavaFX的最前沿,并且可以推荐/阻止它用于我最感兴趣的这类事情.
我意识到这是一个有点开放的问题,但我真的不能想到一个更合适的地方.我不是在寻找"什么是最好的RCP/JavaFX比Swing更好"的辩论.我正在寻找在这种情况下使用/反对它们的有效点.
我打算开始开发桌面应用程序,但直到现在,对我来说,desktop = swing.我做了一些关于它的研究,发现自己有些问题:
我发现有很多JavaFX版本:
但即使最新的NetBeans IDE版本(8.0)与JDK 8(1.8.0),当我创建一个JavaFX应用程序时,它开始使用JavaFX 2.2 - JavaFX 8真的是一个新的JavaFX版本,或者人们之所以说它只是因为它们使用JavaFX 2.X与JDK 8?
关于版本的另一个问题,在JavaFX的X版本中开发的应用程序是否与更高版本兼容?就像一个swing应用程序,如果你用Java 5开发了一个应用程序,它甚至可以在Java 8上运行.
关于开发模式,更具体地说是关于布局创建,我注意到有两种方法可以创建布局:只需用Java编写代码,然后用Java类作为控制器创建XML文件(FXML)(更多MVC方法)就像一个JSF应用程序.我应该选择哪一个?每个人的利弊是什么?