1. 爲什麼要使用SWT?

SWTIBM開發一套跨平臺的GUI開發框架。爲什麼IBM要創建另一種GUI呢?爲什麼他們不使用現有的Java GUI框架呢?要回答這些問題,我需要回到Java的早期時代。

Sun已經創建了一套跨平臺的GUI框架 AWT (Abstract Windowing Toolkit) 這個AWT框架使用了本地窗口組件(native widgets)不過它存在LCD問題. 這個LCD問題導致了它失去主要的平臺特性。換句話說,如果平臺A有窗口組件140而平臺B有窗口組件2025,那麼這個跨平臺的AWT框架只能提供這兩個集合的交集。

爲了解決這個問題,Sun創建了一個新的框架使用模擬窗口組件(emulated widgets)來代替本地窗口組件(native widgets)。這個方法解決了LCD問題同時提供了豐富的窗口組件,不過也產生了其他的問題。例如,Swing應用程序不再和本地程序在樣子上一致。雖然JVM有了很大的改善, 但是Swing應用程序仍然存在它們本地配對物所沒有的性能問題。而且,Swing應用程序消耗了太多的內存,故不適合用於PDA和移動電話等小型設備。

IBM發現這些方法都無法滿足他們的需求。因此,IBM創建了新的GUI庫叫做SWT,它解決了AWTSwing框架中的問題。SWT框架使用JNI訪問本地窗口組件(native widgets),如果一個窗口組件在主機平臺上不能獲得,那麼SWT會模擬這個不能獲取的窗口組件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章