1. 程式人生 > >C/C++ 與Java GUI開發

C/C++ 與Java GUI開發

Java開發中最重要的兩個類庫是SWT和Swing。

這兩個Java介面庫的設計初衷可以說是南轅北轍,都走了兩個極端,下面細細說來

Swing是java的標準介面庫,設計的宗旨是跨平臺介面,所以它選取了所有平臺都通用的特性,也就是所有平臺的 最大公約數,所以與系統相關的部分都由AWT完成。所有Swing的元件都是由Java繪製出來的。所以Swing具有很好的跨平臺性。

SWT是Eclipse的介面庫,設計宗旨是本地化介面,所以只要是平臺具有的,它就直接呼叫,沒有的才自己寫。也就是所有平臺的最小公倍數,因此SWT寫出的介面完全是本地化的。

簡言之,

Swing的設計原則是最大公約數原則,即所以平臺都有的特性。

SWT的設計原則是最小公倍數原則,即所有平臺有用的特性,如果平臺沒有那麼就模擬實現。

Swing的所有元件都是自己繪製的。SWT則是利用系統提供的,而且SWT好像在Windows上更好用(畢竟所有PC幾乎清一色是Windows吧)。

在C/C++中與這些對應的類庫

MFC---------------直接包裝本地平臺的所有元件。

DirectUI----------除了系統相關部分,幾乎所有元件都是自己繪製的。所以會有很好的跨平臺性。

可以做這樣的類比

SWT-----------MFC

Swing----------DirectUI