色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解決方法

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

以下是我對(duì)不同框架的理解,如果我錯(cuò)了,請(qǐng)指正。這是一組定義很松散的問(wèn)題,但是我仍然認(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è)例子是,沒(méi)有一個(gè)功能齊全的TreeTable組件可以進(jìn)行排序和過(guò)濾/搜索。

SWT

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

SwingX

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

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

JGoodies

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

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

JavaFX

Java / Oracle的最新旗艦。有望成為開(kāi)發(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)論,看起來(lái)非常有趣!我特別喜歡這是一個(gè)Apache項(xiàng)目。

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

Qt Jambi

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

http://qt-jambi.org/

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

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

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

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

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

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

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 成年黄色网址 | 毛片在线免费播放 | 男女男在线精品网站免费观看 | 日韩欧美一区二区三区免费看 | 国产区网址 | 欧美成人一级 | 国产精品免费精品自在线观看 | 国产aⅴ精品一区二区三区久久 | 69久成人做爰视频 | 国产成人高清亚洲一区91 | 国产在线a | 国产男人的天堂 | 久久国产欧美另类久久久 | 久久99国产精一区二区三区! | 自拍偷拍二区 | 免费观看的毛片手机视频 | 中文字幕最新中文字幕中文字幕 | 九九精品视频一区二区三区 | 国产乱子精品免费视观看片 | 九九在线精品视频播放 | 国产精品久久大陆 | 久9这里精品免费视频 | 一区二区在线欧美日韩中文 | 精品伊人久久久久7777人 | 日韩视频大全 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 九九精品免费观看在线 | 在线免费国产 | 男人一进一出桶女人视频 | 精品久久久久久久九九九精品 | 波少野结衣在线播放 | 日本免费视 | 国产日韩欧美自拍 | 俄罗斯黄色毛片 | 日韩精品久久一区二区三区 | 自拍1页| 中文字幕一区在线 | 京东一热本色道久久爱 | 欧美黄色xxx| 久草在线影| 精品区 |