学习Java界面编程是选择Swing还是JavaFX?
Swing
JavaFx
一、就目前而言,Swing还远未消亡,Java FX也没有像多年前的答案所暗示的那样取而代之。Java FX不再是标准Java的一部分,而Swing是每个Java Runtime发行版的一部分。建议使用Swing是因为它在所有平台上都非常快速和健壮。
二、 计划只对Swing进行错误修复。Swing在传统意义上并没有被弃用,在可预见的未来仍将继续提供支持,只是没有新特性。
三、大多数现有的GUI java代码都是基于Swing,并且很可能会一直保持这种状态,直到代码基腐烂,没有人再维护它。
四、大多数新的GUI java代码基使用JavaFX,它是Java8中Swing的替代品,现在是标准java库的一部分。它允许插入使用 CSS ,HTML5元素,还有一个非常好的FXML (XML/HTML的一种方言),它允许非程序员使用FXML处理GUI布局等。
五、Swing仍然被大量使用,并且将在很长一段时间内继续使用——毕竟,在很长一段时间内,它是Java的唯一选择。然而,JavaFX令人耳目一新,非常值得学习。
六、Java在2011年的JDK1.7中引入了新的swing类 (Java 7 – javax.swing——JDK版本1.7中引入的类和接口),不过在Java 8中没有继续引入新的类。而在Java9以及后续的版本中,Swing已经不再更新,只进行必要的维护。我这边想要表达的是,人们对这项技术的兴趣已经枯竭,但它仍然在使用。有些公司还在使用Swing和SwingX。
七、 目前还有一些值得注意的Swing应用:
(1). NetBeans IDE和IntelliJ IDEA,它们都是IDE和富文本客户端平台。
(2).Oracle SQLDeveloperBut。
看起来Eclipse(软件)平台已经赢了——作为Android开发的原生平台,以及各种供应商和开源栈的Java EE开发平台。所以,Swing 以及 Swt并没有死,但如果没有多少人再使用它,它可能就不值得进行维护了。
八、JavaFx目前非常好,旧的默认AWT和Swing的“金属”皮肤看起来并不怎么样,但是Swing仍然是制作跨平台GUI的最好方法。这项任务的替代方案不一定好得多。如果你能够为每个平台编写本地gui,你将会得到更好的结果。不过话又说回来,现在大多数Gui都是浏览器中的一堆JavaScript。是的,如果你注意就会发现这样一个事实,现在的许多桌面软件都是JavaScript来制作的,而不是Java。
九、如果你在学习AWT、Swing还是JavaFX之间犹豫不决,那么你应该知道Swing提供了比AWT更丰富的组件集。Swing中的几乎所有类都继承自AWT中的类。但是因为JavaFX的设计目的是取代Swing而作为Java SE的标准GUI库,所以JavaFX在很多方面都优于Swing。如果你想为Android编写一个Java应用程序,同时也让它在Windows Mobile和iOS上运行。允许你这样做的产品只有JavaFX。
十、综合来看,Java Swing 因为过去源码遗留的原因,以及作为JDK标准库的一部分,在未来使用 Swing的人数仍将不少,如果你需要简单编写一个界面程序,使用Swing将比较方便。再一个,由于JavaFX 目前已经从JDK标准库中移除,如果你必须使用JavaFX,则需要下载相关的JavaFX包,或者使用Maven进行构建,在进行专业界面应用开发商,JavaFx仍然是不二的选择。