HOWTO · Java
JavaFX 與 Swing
本教程演示了 JavaFX 和 Swing 之間的區別。
JavaFX 是一個 Web 平臺,可幫助開發人員為 Web、移動和桌面應用程式開發現代使用者介面。另一方面,Java Swing 是 Sun Microsystems 設計的 GUI 工具包; Java Swing 是 Java 最流行的 GUI 工具包之一。
本文比較了這兩種工具,並說明了 JavaFX 和 Swing 之間的差異,以決定哪一種對你來說是可行的。
JavaFX 的優點
JavaFX 於 2005 年由 Adobe Systems 開發,穩步發展。JavaFX 有幾個優點:
- JavaFX 是 Eclipse 等 IDE 中包含的標準相容類庫。
- JavaFX 使開發人員能夠預覽和測試不同應用程式的 UI。
- JavaFX 支援合成控制元件、輸入和各種圖形。
Java Swing 的優點
Sun Microsystems 開發了 Swing;它比 JavaFX 有一些優勢。
- Java Swing 相容各個平臺,被很多外掛支援。
- Java Swing 是最流行的 GUI 工具包之一,最適合移動應用程式開發。
- 使用 Java Swing,可以輕鬆遷移遺留應用程式,這意味著你可以隨時重用你的程式碼。
JavaFX 的缺點
JavaFX 有一些缺點,如下所列。
- 技術能力有限,需要熟練的技術知識才能使用。
- 不適合高度複雜的應用。
- JavaFX 的社群是有限的,當你在 JavaFX 中遇到問題時,這是一個障礙。
Java Swing 的缺點
Java Swing 也有一些缺點。
- Java Swing 直接連線到 JVM,這意味著桌面到移動跨平臺 Java 應用程式是不可能的。
- Java Swing 不相容 Java 7 及之前的版本。
JavaFX 與 Swing 的主要區別
下表列出了 JavaFX 和 Swing 之間的主要區別。
| JavaFX | Java Swing |
|---|---|
| JavaFX 對 MVC 的支援非常友好。 | Swing 支援 MVC 但與元件不一致。 |
| JavaFX 也有一些 UI 元件,但比 Swing 少。 | Swing 有一組更復雜的 GUI 項。 |
| JavaFX 是對 GUI 應用程式的平臺支援。 | Swing 是用於 GUI 的標準工具包。 |
| JavaFX 有 UI 元件,但仍在不斷髮展。它還有幾個構建在 Swing 之上的元件。 | Swing 是用於 GUI 的遺留庫。 |
| JavaFX 可以幫助建立具有現代 UI 的富 Internet 應用程式。 | Swing 可以幫助建立具有良好外觀的 UI 元件。 |
| IDE 也支援 JavaFX,但不如 Swing。 | 各種 IDE 都支援 Swing。 |
基於 JavaFX 與 Swing 屬性的比較
以下是基於幾個主要屬性的兩種技術的比較。
| 屬性 | JavaFX | Java Swing |
|---|---|---|
| 使用者介面(UI) | 可以用 JavaFX 設計豐富的使用者介面。 | 可以用 JavaFX 設計標準的使用者介面。 |
| 元件 | 元件數量少 | 提供大量的元件。 |
| 功能性 | 未來更新的功能範圍 | 沒有引入未來的功能。 |
| 開發 | JavaFX 用螢幕生成器來編寫 UI 開發指令碼。 | Swing APIs 被用來編寫 UI 元件。 |
| 類別 | 對即將到來的功能豐富的 UI 元件總是有一個缺口。 | 功能齊全的遺留 UI 庫。 |
JavaFX 用於開發應用程式和 Swing 的 UI。這兩種技術的使用主要基於需求。
Swing 的元件比較多,JavaFX 就是在 Swing 的元件上開發的。JavaFX 是一個軟體平臺,其中 Swing 只是一套 API。
Swing 可以通過其龐大的 UI 元件庫為開發人員提供優勢,其中 JavaFX 為設計富網際網路和現代應用程式提供了支援。它基於開發人員的要求,他們想要使用哪一個。