我有一个非常大的程序,目前正在使用SWT。该程序可以在Windows、Mac和Linux上运行,它是一个具有许多元素的大型桌面应用程序。
现在SWT有点老了,我想切换到Swing或JavaFX。我想听听你们对三件事的看法。
我主要关心的是桌面GUI应用程序应该如何更好?(我在网上看了一下,很多人都认为JavaFX和Swing一样好,但除了简单的意见论战之外,我没有看到很多有效的论点)。它必须在Windows、Mac和一些流行的Linux发行版上都能运行。
什么会更干净、更容易维护?
从头开始构建什么会更快?
我在我的应用程序中使用MVC方法,如果有任何帮助。
什么会更干净、更容易维护?
在所有条件都相同的情况下,JavaFX的API在组件之间更加一致。然而,这在很大程度上取决于代码是如何编写的,而不是使用什么库来编写它。
从头开始构建什么会更快?
高度依赖于你正在构建的东西。Swing有更多的组件(第三方的和内置的),但并不是所有的组件都在更新的JavaFX平台上,所以如果您需要一些自定义的东西,可能需要重新发明一些东西。另一方面,如果你想要做过渡/动画/视频之类的东西,那么这在FX中要容易几个数量级。
另一件要记住的事情是(也许)外观和感觉。如果您绝对必须拥有默认的系统外观,那么JavaFX(目前)无法提供这一点。对我来说不是一个大的必须(我更喜欢默认的FX外观),但我知道一些政策要求限制系统风格。
就我个人而言,我认为JavaFX是“即将到来的”UI库,它还没有完全实现(但不仅仅是可用的),而Swing是边缘的传统UI库,它目前具有完整的功能和支持,但在未来几年可能不会那么多(因此FX有可能在某个时候超过它)。