天天看點

Java界面設計的用途

一、Java界面設計的用途:

    JavaSE(Java Standard Edition)即Java标準版,一般也可以了解作Java桌面版。開發者可以通過JavaSE開發豐富并且強大的具有圖形界面的桌面應用程式。

    Java的圖形化界面工具包,可以用于工具類軟體開發、管理類軟體開發、通用用戶端開發、×××端軟體開發、Eclipse插件開發等方向。在許多知名的大型軟體中,都能見到Java的身影,如某些版本的Photoshop、思維導圖軟體、Eclipse、IDEA開發環境等。

    開發者也可以使用Java為自己設計一些提高效率的工具軟體,幫助自己處理機械性的工作。

    為何Java有多套GUI工具包?最好的答案是,沒有一個可以滿足所有要求的GUI工具包。

    Java的GUI工具包包含AWT、Swing和SWT,每個工具包都有各自的優缺點,開發者可以根據自己的需求和目标使用者來選擇适當的工具包。

二、Java GUI設計的三個工具包:AWT Swing SWT

    AWT(Abstract Windows Toolkit)是最原始的Java GUI工具包。AWT的主要優點是,它在Java技術的每個版本上都成為了一種标準配置,包括早期的Web浏覽器中的Java實作;另外它也非常穩定。這意味着我們不需要單獨安裝這個工具包,在任何一個Java運作環境中都可以使用它。

    AWT是一個非常簡單的具有有限GUI元件、布局管理器和事件的工具包(如窗體、文本标簽、按鈕、菜單等)。這是因為Sun公司決定為AWT使用一種最小公分母(LCD)的方法。是以它隻會使用為所有Java主機環境定義的GUI元件。

    由于AWT要依賴主機GUI的對等體(peer)控件(其中每個AWT元件都有一個并行的主機控件或者對等體)來實作這個GUI,這個GUI的外觀和行為在不同的主機上會有所不同。這和Java的“一次編寫,處處運作”理念沖突,是以構成了AWT的局限性。

    Java Swing是Java Foundation Classes(JFC)的一部分,它是試圖解決AWT缺點的一個嘗試。在Swing中,Sun開發了一個經過仔細設計的、靈活而強大的GUI工具包。Swing是在AWT元件基礎上建構的。Swing使用了AWT的事件模型和支援類,例如Colors、Images和Graphics。Swing元件、布局管理器以及事件比AWT提供的元件集更為廣泛,完全滿足各種開發需求。

    為了克服在不同主機上行為也會不同的缺點,Swing将主機控件的依賴性降至了最低。實際上,Swing隻為諸如視窗和架構之類的頂層元件使用對等體。大部分元件(JComponent及其子類)都是使用純Java代碼來模拟的。這意味着Swing天生就可以在所有主機之間很好地進行移植。是以,Swing通常看起來并不像本地程式。實際上,它有很多外觀,有些模拟不同主機的外觀,有些則提供了獨特的外觀。

    Swing對基于對等體的元件使用的術語是重量級(heavyweight),對于模拟的元件使用的術語是輕量級(lightweight)。事實上,Swing可以支援在一個GUI中混合使用重量級元件和輕量級元件,例如在一個JContainer中混合使用AWT和Swing控件。除此之外,它還有以下優勢:1.基于MVC結構 2.可程式設計外觀 3.呈現器與編輯器 4.支援以任意順序建構GUI 5.可通路性 6.支援自動銷毀 7.是标準Java的一部分

    SWT也是基于一個對等體實作的,在這一點上它與AWT非常類似。它克服了AWT所面臨的LCD問題,方法如下:定義了一組控件,它們可以用來建構大部分辦公應用程式或開發者工具,然後可以按照逐個主機的原則,為特定主機所沒有提供的元件建立模拟控件(這與Swing類似)。對于大部分現代主機來說,幾乎所有的控件都是基于對等體的。這意味着基于SWT的GUI既具有主機外觀,又具有主機的性能。這樣就避免了使用AWT和Swing而引起的大部分問題。特定的主機具有一些低級功能控件,是以SWT提供了擴充(通常是模拟的)版本(通常使用“C”作為名字中的第一個字母),進而可以産生更一緻的行為。

    在SWT中,對等體隻是主機控件上的一些特殊封裝程式而已。這意味着SWT應用程式實際上就是一個主機應用程式,它必然會全部繼承主機的優點和缺點。這還意味着SWT不能完全實作“一次編寫,處處測試”解決方案。這就是說,SWT盡管不如Swing那麼優秀,但是它在建立可移植解決方案方面是很傑出的。此外,SWT還具有以下特點:1.不支援GUI自動銷毀 2.僅支援自頂向下建構GUI 3.對Java2D的支援不夠完善 4.不屬于标準Java的一部分