Java的GUI框架如何選擇? Swing、SWT、AWT、SwingX、JGoodies、JavaFX、Apache Pivot?
本文是直譯stackoverflow的一個問題,原文在這,下面是譯文(軟體翻譯,不對之處請指正)
java有很多gui框架,但是今天的框架選擇是什麼?
以下是我對不同框架的理解,如有錯誤請指正。這是一組定義非常鬆散的問題,但我仍然認為它對任何想要建立富gui應用程式的人都很有價值。
AWT
是swing的基礎,執行良好,但缺少高階元件。如果您打算建立豐富的應用程式,那麼AWT可能不是最好的方法。但是對於不需要豐富使用者介面的較小gui應用程式來說。這可能非常適合,因為它是一個久經考驗的框架。
搖擺不定的
基於AWT,如前所述。在它的初期,它被認為是緩慢和有缺陷的,並導致IBM為Eclipse建立SWT。但是對於Java 5(或6?)Swing成為構建新應用程式的首選框架。Swing有許多豐富的元件,但在某些領域仍然缺乏。一個例子是,沒有一個功能齊全的可以進行排序和過濾/搜尋的樹狀元件。
SWT
由IBM為Eclipse建立的,他們似乎認為Swing在當時並不適合Eclipse。它本身非常低階,並且通過JNI使用平臺的本機小部件。它與Swing和AWT完全無關。然而,他們的API有些笨拙且不直觀。它們確實有一些高階元件,比如樹狀結構。(但我認為他們不支援分類和過濾).SWT使用了一些本機繫結(通過JNI?),而internet上的抱怨是這個框架不應該在今天的專案中使用。(為什麼不呢?)
SwingX
基於Swing的任務是為Swing建立豐富的元件。仍在發展。(不過不是很活躍。)有一組非常好的元件,例如TreeTable。但據我所知,TreeTable不支援過濾和排序。不過,它確實支援突出顯示搜尋。
- 注意,SwingX是元件(AFAIU),它是現有Swing元件的擴充套件或組合
JGoodies
一個我不知道的框架…它的優點和缺點是什麼?Jgoodies有什麼不同於其他的?
JGoodies OTOH是關於PLAFs和佈局的。
JavaFX
Java/Oracle的最新旗艦。承諾成為開發富桌面或web應用程式的實際標準。
Apache Pivot
它使用Java2D呈現UI,從而最小化了Swing和AWT(在我看來,過於臃腫)遺留的影響。(@Augustus Thoo)
它的主要焦點似乎是RIA(Rich internet applications),但它似乎也可以應用於桌面應用程式。作為個人評論,看起來很有趣! 我特別喜歡這個apache專案。
https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html
Qt Jambi
用c/c++編寫的本機qt庫的java包裝器。非常強大,廣泛使用和接受。具有許多GUI元件和易於使用的API。
http://qt-jambi.org/
所以,試著總結一下我的問題:
假設我今天想用Java建立一個桌面應用程式,它包含了很多高階元件,我應該選擇什麼呢?,為什麼?
這些框架中哪一個應該被認為是棄用的,哪一個應該被認為是遙遠未來的框架?
什麼是今天的反事實標準框架,您使用什麼工具來建立java gui應用程式?
我可能會後悔問這個問題,但無論如何我要試一試:c#&.Net據說有一套非常好的易於使用的元件,可以在任何方向上彎曲。在某種程度上研究了不同的java框架之後,我似乎無法對java說同樣的話。這是為什麼呢?為什麼java(世界上使用最廣泛的程式語言)沒有相同的GUI元件集?
只是因為java將gui元件建立在一個更低的層次上,並且可以編寫所有這些我正在尋找的高階元件,但是您必須自己完成大量(如果不是全部的話)工作嗎?
相關文章
- 打算學GUI程式設計,SWING,javaFx,SWT怎麼選?GUI程式設計Java
- javafx 和swing_整合JavaFX和SwingJava
- Java GUI入門手冊-AWT篇JavaGUI
- 整合JavaFX和SwingJava
- java-GUI程式設計之AWT元件JavaGUI程式設計元件
- Java學習之AWT GUI程式設計JavaGUI程式設計
- Java-GUI 程式設計之 SwingJavaGUI程式設計
- java程式通過swing呼叫javaFx更新 資料Java
- Java-GUI程式設計之Swing元件JavaGUI程式設計元件
- Java學習之Swing Gui程式設計JavaGUI程式設計
- javafx和swing巢狀使用的方法Java巢狀
- awt&swing 學習筆記(3)筆記
- awt&swing 學習筆記(2)筆記
- 在JavaFX程式中嵌入Swing內容Java
- 利用awt與swing進行桌面程式設計(1)程式設計
- Swing 自定義JTable 多選框 自動選擇的錯誤
- 【Java GUI 程式設計】Swing 使用者介面開發工具包JavaGUI程式設計
- 如何選擇正確的Node框架:Next, Nuxt, Nest?框架UX
- python和java該如何選擇?PythonJava
- 如何選擇java診斷工具Java
- java培訓班如何選擇Java
- 三種大資料流處理框架選擇比較:Apache Kafka流、Apache Spark流和Apache Flink - quora大資料框架ApacheKafkaSpark
- Signal:更多前端框架的選擇前端框架
- 如何進行機器學習框架選擇機器學習框架
- 選擇Apache Pulsar而不是Kafka的理由 - KafkaesqueApacheKafka
- java.awt.headless 模式Java模式
- Python和Java該如何選擇?選哪個好?PythonJava
- 如何選擇正確的Node框架:Express,Koa還是Hapi?框架ExpressAPI
- 時至今日tkinter, pyqt, wxpython 那個 GUI 才更好,更完善,新手如何選擇?QTPythonGUI
- 新手上路之如何選擇Java版本Java
- 手把手擼套框架-ORM框架的選擇框架ORM
- GUI 基於Swing製作貪吃蛇小遊戲GUI遊戲
- Java 選擇排序Java排序
- 介面測試框架選擇框架
- java培訓機構如何選擇適合自己的Java
- Python VS Java如何選擇?Python學習分析!PythonJava
- Java-GUI程式設計之選單元件JavaGUI程式設計元件
- 為什麼選擇Guice框架GUI框架