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組件建立在一個更低的層次上,並且可以編寫所有這些我正在尋找的高級組件,但是您必須自己完成大量(如果不是全部的話)工作嗎?