Java案頭GUI庫

來源:互聯網
上載者:User

感覺用Java開發web app是非常普遍的,工具啊,庫啊都非常豐富,那麼如果用Java開發一個普通的案頭應用,有哪些GUI庫可供選擇呢?

一、AWT

Abstract Window Toolkit, 是Java中引入最早的GUI庫,它是對native system的一個封裝,真正的視窗渲染還是由作業系統功能提供的,這使得用awt寫的UI,其在不同的系統上顯示是不一樣的 - 都是按照目標系統的風格顯示的。

AWT提供了兩個層面的Java API:一個是對native system的視窗,事件等基本機制的封裝; 二是提供了如button,checkbox等現成的控制項。

AWT是JFC[1]的一部分 

二、Swing

AWT和Swing都是JavaSE的組成部分,但Swing提供了更為豐富的功能與控制項,如 tabbed panel, scroll panes, trees, tables和lists等

而且因為Swing使用Java2D實現,所有代碼都是java,無需依賴於native system,因此,其look&feel可以在不同系統建保持一致 - 但你同時又可以調整讓其以native system的風格顯示,可以說更加靈活。

Swing採用了MVC架構。

三、 SWT

Standard Widget Toolkit, Eclipse出品,和AWT一樣,SWT同樣也是使用JNI訪問native system api實現,使用SWT的程式是跨平台的,但是SWT的實現本身,卻需要為每個平台都實現一份。

SWT是集合了Swing和AWT的一些特點:它和AWT一樣調用了native函數,運行效率高且保持了native的look&feel,但同時它有提供了Swing一樣強大的功能和豐富的控制項。

雖然SWT本身不支援MVC架構,但Eclipse提供了另一個基於SWT的高層次的庫:JFace,JFace不僅支援MVC架構,並且提供高層次的控制項與UI機制, 如Viewer,Wizard, Action等

四、QT jambi

這是一個對著名C++ GUI庫QT的java 封裝,如果熟悉QT的話,用這個應該會比較貼心。

但Qt Jambi在10年被諾基亞放棄,而Qt又於近日被諾基亞放棄(12年五、六月份左右),玩去昂考opensource的力量在支撐,其前景有待考慮。

五、JavaFx

JavaFx是一種更高層次的GUI framework,一般可以用來構建internet、desktop、mobile、game console等UI,其競爭者有AJAX,Flash,Silverlight。

這個可能不是做一個簡單的Java Desktop Application的好選擇。

 

GUI Designer

開發GUI程式,而沒有一個UI designer的話會是非常低效的,MyEclipse提供了一個針對Swing的Swing GUI Designer 10.6 [2],但是目前網路上多數指向它的連結都無法訪問,據說其MyEclipse已經停止開發它了,所以感覺價值不是很高。但是google又一次大度的給出了Java GUI Design方面的神器:WindowsBuilder,  支援Swing和SWT,相當強大。

 

所以,用java開發一個desktop的程式時,我會選擇swing(功能強大,且lightweight,無須轉調native call), 配上WindowsBuilder.

 

[1] JFC = Java Fundation Classes (效仿MFC?) 其包括AWT, Swing和Java2D

[2] 又叫Matisse4MyEclipse, 其原型是Netbean中的UI designer Matisse

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.