JavaFX与SWT相比如何?(优缺点)

10

我很困惑,不知道该选择哪个:SWT/JFace还是JavaFX。哪一个更好呢?我知道SWT是本地的,但JavaFX是否也是本地的呢?使用本地UI很重要吗,还是JavaFX是最佳选择?


我对这个问题的答案非常感兴趣,特别是在2013年12月,因为JavaFX 8受到了很多关注。 - Fuzzy Analysis
3个回答

5

这个选择取决于很多其他方面,而不仅仅是 UI 工具包本身。毕竟,几乎可以使用所有成熟的 UI 工具包实现几乎相同的外观和感觉 - API 可能非常非常不同 - 但结果并不相同...

重要的是环绕工具包的环境。

首先,SWT/JFace 与 Swing 或 JavaFX 的主要区别在于 Eclipse 应用程序框架及其工作台和相关服务的存在。当然还有 OSGi... 对我来说,这是一个很大的区别。Swing 和 JavaFX 在 Java 框架中也有类似的东西,但是在我的看法中没有那么发达。


2
"结果并非如此",我强烈不同意。本地外观和真正的本地控件非常不同(在我看来,最好的例子是每个操作系统提供的文件对话框)。 - J. Dimeo
现在我会说,Swing和JavaFX之间几乎没有什么区别。甚至文件对话框也是一样的 - 据我所知... - Tonny Madsen
2
我绝对是一个本地迷。我知道有一段时间 Windows 上的文件对话框缺少 Swing 的图标,这让我在设计专业界面时感到不舒服。谢谢您的回复。 - J. Dimeo
1
实际上,对于特定的文件对话框示例,JavaFX使用来自操作系统的本地文件对话框(例如,在Windows上是Windows文件选择器,在OS X上是OS X文件选择器)。这与Swing不同,据我所知,Swing将文件对话框呈现为Swing组件,因此在不同平台上看起来完全相同(但也不同于每个平台上的标准本地文件对话框)。 - jewelsea

3

Oracle已经声明JavaFX 2.0是Swing的替代品。对于一个新的Windows GUI客户端,我会选择JavaFX。


11
我不一定会给这个投票否决,但你不应该仅仅因为 Oracle 说了算就采用某种技术。 - Bryan Johnson
1
因为楼主提到了SWT而不是Swing,所以被踩了,但这却是最受欢迎的答案。 - raven1981
Swing将以类似COBOL应用程序的方式存在。复杂的GUI系统不易移植到JavaFX,人们(包括我在内)将继续使用Swing。当然,对于新项目,建议使用JavaFX,但如果其他所有内容都是SWING,则JavaFX可能不是最佳选择... - DejanLekic

1

这段文字可以帮助你选择。因为我从《Java编程实战全书第九版》中读到:

一个自然而然的问题是:JavaFX是否被设计成Swing的替代品?答案是有条件的肯定。然而,考虑到大量的Swing遗留代码和知道如何为Swing编程的程序员的数量,Swing将会长期使用,特别是企业应用程序。尽管如此,JavaFX已经明确地定位为未来的平台。预计在未来几年,JavaFX将取代Swing成为新项目的首选。Java程序员不能忽视JavaFX。


2
好的,除了最后一句话:"JavaFX 是任何 Java 程序员都不能忽视的东西。"=> 如果您不打算使用 Java 工具包创建 GUI,则如果您愿意,完全可以忽略 JavaFX(我所认识的大多数仅编写服务器代码的 Java 程序员都是这样做的)。 - jewelsea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接