亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Java GUI框架。選擇什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot?

瀏覽:104日期:2024-04-15 15:01:51
如何解決Java GUI框架。選擇什么?Swing,SWT,AWT,SwingX,JGoodies,JavaFX,Apache Pivot??Qt和SWT之類的框架需要本機(jī)DLL。因此,你必須問自己:是否支持所有必需的平臺(tái)?是否可以將本機(jī)DLL與你的應(yīng)用程序打包在一起?

請(qǐng)參閱此處,如何針對(duì)SWT執(zhí)行此操作。

如果你在這里有選擇,則應(yīng)該選擇Qt而不是SWT。Qt是由了解UI和桌面的人員開發(fā)的,而SWT是出于提高Eclipse速度的必要而開發(fā)的。它是Java 1.4的性能補(bǔ)丁,而不是UI框架。沒有JFace,你將缺少許多主要的UI組件或UI組件的非常重要的功能(例如對(duì)表進(jìn)行過濾)。

如果SWT缺少你需要的功能,則該框架在擴(kuò)展它方面有些敵意。例如,你不能在其中擴(kuò)展任何類(這些類不是最終類,當(dāng)?shù)陌黷his.getClass()不是時(shí),它們只會(huì)引發(fā)異常,org.eclipse.swt并且你不能在該包中添加新類,因?yàn)樗押灻?/p>如果你需要本機(jī)的純Java解決方案,那么剩下的就剩下了。讓我們從AWT,Swing,SwingX(Swing方式)開始。

AWT已過時(shí)。Swing已過時(shí)(在過去的10年中,Swing可能更少,但沒有做太多工作)。你可能會(huì)說Swing很好,但是我們都知道代碼會(huì)爛掉。對(duì)于當(dāng)今的UI尤其如此。

剩下的就是SwingX。經(jīng)過一段漫長的緩慢發(fā)展之后,發(fā)展又恢復(fù)了。Swing的主要缺點(diǎn)是它依賴于一些古老的想法,這些想法在15年前非常前沿,但在今天卻顯得“笨拙”。例如,表視圖確實(shí)支持過濾和排序,但是你仍然必須進(jìn)行配置。你必須編寫許多樣板代碼才能獲得一個(gè)感覺不錯(cuò)的現(xiàn)代UI。

另一個(gè)弱點(diǎn)是主題。到今天為止,周圍有很多主題。請(qǐng)參閱此處的前十名。但是有些很慢,有些是越野車,有些是不完整的。當(dāng)我編寫UI時(shí),我討厭它,用戶抱怨某些東西對(duì)他們不起作用,因?yàn)樗麄冞x擇了一個(gè)奇怪的主題。

JGoodies是Swing之上的另一層,如SwingX。它試圖使Swing更易于使用。該網(wǎng)站看起來很棒。讓我們看一下教程… hm …仍在搜索…繼續(xù)。網(wǎng)站上似乎根本沒有文檔。Google進(jìn)行了救援。不,根本沒有有用的教程。

我對(duì)UI框架充滿信心,UI框架如此努力地向潛在的新粉絲隱藏文檔。這并不意味著JGoodies會(huì)很糟糕。我只是找不到任何好話要說,但看起來不錯(cuò)。

JavaFX。很棒,時(shí)尚。支持在那里,但我覺得它比嚴(yán)肅的UI框架更像是一個(gè)閃亮的玩具。這種感覺源于缺少復(fù)雜的UI組件(如樹表)。有一個(gè)基于Webkit的組件來顯示HTML。

當(dāng)它被引入時(shí),我的第一個(gè)想法是“五年為時(shí)已晚”。如果你的目標(biāo)是為手機(jī)或網(wǎng)站開發(fā)一款不錯(cuò)的應(yīng)用程序,那就好。如果你的目標(biāo)是專業(yè)的桌面應(yīng)用程序,請(qǐng)確保它滿足你的需求。

樞。我第一次聽說。它基本上是一個(gè)基于Java2D的新UI框架。所以昨天我嘗試了一下。沒有搖擺,只有一點(diǎn)點(diǎn)的AWT(new Font(…))。

我的第一印象是不錯(cuò)的。有大量的文檔可幫助你入門。大多數(shù)示例都隨網(wǎng)頁上的實(shí)時(shí)演示一起提供(注意:你必須在Web瀏覽器中啟用Java;這會(huì)帶來安全風(fēng)險(xiǎn)),因此你可以并行查看代碼和生成的應(yīng)用程序。

以我的經(jīng)驗(yàn),代碼比文檔要花更多的精力。通過查看Pivot文檔,代碼中必須付出很多努力。請(qǐng)注意,當(dāng)前存在一個(gè)錯(cuò)誤,該錯(cuò)誤使某些示例(PIVOT-858)無法在瀏覽器中運(yùn)行。

我對(duì)Pivot的第二印象是它易于使用。當(dāng)我遇到問題時(shí),通常可以通過看一個(gè)例子來快速解決。不過,我缺少每個(gè)組件支持的所有樣式的參考。

與JavaFX一樣,它缺少一些更高層次的組件,例如樹表組件(PIVOT-306)。我沒有嘗試使用表視圖進(jìn)行延遲加載。我的印象是,如果基礎(chǔ)模型使用延遲加載,那就足夠了。

有希望。如果可以,請(qǐng)嘗試一下。

解決方法

有很多針對(duì)Java的gui框架,但是公認(rèn)的當(dāng)今選擇框架是什么?

以下是我對(duì)不同框架的理解,如果我錯(cuò)了,請(qǐng)指正。這是一組定義很松散的問題,但是我仍然認(rèn)為這對(duì)任何想創(chuàng)建豐富的GUI應(yīng)用程序的人都非常有價(jià)值。

AWT

是揮桿的基礎(chǔ),它表現(xiàn)良好,但缺少高級(jí)組件。如果你打算創(chuàng)建豐富的應(yīng)用程序,那么AWT可能不是走的路。但是對(duì)于不需要豐富用戶界面的小型GUI應(yīng)用程序。這是一個(gè)久經(jīng)考驗(yàn)的框架,因此可能非常適合。

Swing

如前所述基于AWT。在起步階段,它被認(rèn)為是緩慢且有故障的,并導(dǎo)致IBM為Eclipse創(chuàng)建SWT。但是,在Java 5(或6?)中,Swing成為構(gòu)建新應(yīng)用程序的首選框架。Swing具有很多豐富的組件,但在某些方面仍然缺乏。一個(gè)例子是,沒有一個(gè)功能齊全的TreeTable組件可以進(jìn)行排序和過濾/搜索。

SWT

由IBM為Eclipse創(chuàng)建的,他們似乎認(rèn)為Swing當(dāng)時(shí)不適合Eclipse。它本身是相當(dāng)?shù)图?jí)的,它通過JNI使用平臺(tái)的本機(jī)窗口小部件。它根本與Swing和AWT不相關(guān)。但是,他們的API有點(diǎn)笨拙且不直觀。他們確實(shí)有一些高級(jí)組件,例如TreeTable。(但我不認(rèn)為它們支持開箱即用的排序和過濾)。SWT使用某些本機(jī)綁定(通過JNI?),互聯(lián)網(wǎng)上的喧囂聲是該框架不應(yīng)在當(dāng)今的項(xiàng)目中使用。(為什么不?)

SwingX

基于Swing,其任務(wù)是為Swing創(chuàng)建豐富的組件。仍在開發(fā)中。(雖然不是很活躍。)具有一組非常好的組件,例如TreeTable。但是據(jù)我所知,TreeTable不支持過濾和排序。但是它確實(shí)支持突出顯示搜索。

請(qǐng)注意,SwingX是組件(AFAIU),是現(xiàn)有Swing組件的擴(kuò)展或組成

JGoodies

一個(gè)我一無所知的框架…它的優(yōu)點(diǎn)和缺點(diǎn)是什么?Jgoodies與其他產(chǎn)品有什么不同?

JGoodies OTOH與PLAF和布局有關(guān)。

JavaFX

Java / Oracle的最新旗艦。有望成為開發(fā)豐富桌面或Web應(yīng)用程序的事實(shí)標(biāo)準(zhǔn)。

Apache Pivot

它使用Java2D渲染UI,從而最大程度地減少了Swing和AWT的(IMO,腫的)遺產(chǎn)影響。(@Augustus Thoo)

它的主要焦點(diǎn)似乎在RIA(豐富的Internet應(yīng)用程序)上,但是它似乎也可以應(yīng)用于桌面應(yīng)用程序。作為個(gè)人評(píng)論,看起來非常有趣!我特別喜歡這是一個(gè)Apache項(xiàng)目。

https://cwiki.apache.org/PIVOT/frequently-asked-questions-faq.html

Qt Jambi

用c / c ++編寫的本地qt庫的Java包裝器。非常強(qiáng)大,被廣泛使用并被接受。具有大量的GUI組件和易于使用的API。

http://qt-jambi.org/

因此,嘗試總結(jié)一下我在問什么:

假設(shè)我今天想用Java創(chuàng)建一個(gè)包含許多高級(jí)組件的桌面應(yīng)用程序,我應(yīng)該選擇什么?又為什么呢?

這些框架中的哪一個(gè)應(yīng)該被認(rèn)為已過時(shí),哪些應(yīng)該被認(rèn)為是遙遠(yuǎn)的未來?

當(dāng)今的事實(shí)上的標(biāo)準(zhǔn)框架是什么?你使用哪些工具來創(chuàng)建Java GUI應(yīng)用程序?

我可能會(huì)后悔提出這個(gè)問題,但還是不愿意嘗試:

據(jù)說C#/。Net具有一組非常好用的組件,可以在各個(gè)方向上靈活應(yīng)用。在某種程度上研究了不同的Java框架之后,我似乎對(duì)Java并沒有說同樣的話。為什么是這樣?為什么Java(世界上使用最廣泛的編程語言)沒有相同的GUI組件集?

難道Java只是在較低的基礎(chǔ)上提供了gui組件,是否有可能編寫我正在尋找的所有這些高級(jí)組件,但是你必須自己做很多(如果不是全部的話)工作?

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国内精品九一在线播放 | 狠狠色噜噜狠狠狠狠狠色综合久久 | 国产精品欧美日韩一区二区 | 国产剧情第一页 | 青青草综合视频 | 中文黄色片 | 国产限制级在线 | 国内精品视频在线播放一区 | 久久日韩精品中文字幕网 | 亚洲毛片视频 | 日本一级毛片冲田杏梨 | 美国一级视频 | 国产精品入口在线看麻豆 | 永久在线观看视频 | 免费国产黄 | 国产在线观看精品香蕉v区 国产在线每日更新 | 国产99re在线观看只有精品 | 免费一级毛片一级毛片aa | 亚洲人xx视频 | 97精品视频在线 | 午夜视频网址 | 国产在线观看a | 亚洲欧美在线播放 | 亚洲制服在线观看 | 亚洲你懂的 | 欧美伦禁片在线播放 | 特级毛片视频在线 | 亚洲国产精品网 | 亚洲国产精品人久久 | 91视频最新地址 | 美女隐私视频黄www免费 | 日本三级韩国三级三级a级按摩 | 大人和孩做爰h视频在线观看 | 亚洲绝美精品一区二区 | 成年美女毛片黄网站色奶头大全 | 欧美激情级毛片 | 日本成本人啪啪黄3d动漫 | 成人亚洲在线观看 | 黑人巨茎xxx免费视频 | 亚洲草逼| 哪个网站能看毛片 |