熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Swing的歷史

2013-11-23 19:28:04  來源: Java核心技術 

  要了解Swing首先必須了解AWTAWT是Swing的基礎
    Java的發展速度超出了人們的想象Java API中最可視的部分——API突然成為了人們關注的焦點遺憾的是原來的AWT不能滿足發展的需要
    原來的AWT不是為許多開發人員使用的功能強大的用戶界面(UI)工具包而設計的其設計目的是支持開發小應用程序中的簡單用戶界面例如原來的AWT缺少許多面向對象UI工具包中所能見到的特性例如剪貼板打印支持和鍵盤導航等特性在AWT中都不存在原來的AWT甚至不包括彈出式菜單或滾動窗格等基本特性而彈出式菜單和滾動窗格是開發現代用戶界面的兩個基本元素
    此外AWT的下層構件還有嚴重的缺陷人們使AWT適應基於繼承的具有很大伸縮性的事件模型甚至更糟基於對等組件(peer)的體系結構也被用於AWT該體系結構注定要成為AWT的致命弱點
    為了盡快推向市場和保持本地的界面樣式於是產生了基於對等組件的體系結構而該體系結構注定是要失敗的對等組件是完成薄弱的AWT對象所委托任務的本地用戶界面組件對等組件負責完成所有的具體工作包括繪制自己對事件做出反應等這使得AWT組件除了在適當的時間與其對等組件交互外無事可做由於AWT類中是較復雜的本地對等組件的外殼所以AWT的早期開發人員能在最快的時間(原來的AWT是在不足六個星期的時間內開發出來的)內創建組件例如javaawtPanel類只包含十二行代碼
    另外對等組件的設計也有嚴重的缺點首先在大多數平台上對等組件都是在本地窗口中繪制的每個組件一個本地窗口實在不能得到高性能為此含有大量AWT組件的小應用程序付出了很高的性能代價
    把不同平台上的本地對等組件硬塞進Java框架中也是一個問題使這些AWT組件跨平台的表現一致是完全不可能的結果不但沒有實現急需的新組件而且開發時間都浪費在修補對等組件的錯誤上和不兼容問題上了
    更糟的是AWT有很高的錯誤發生率於是第三方開始提供他們自己的工具包這些工具包提供了更可靠的下層構件並提供了比AWT更多的功能這些工具包之一是Netscape的Interner基礎類(IFC)IFC是一組建立在NEXTSTEP中的用戶界面工具包概念基礎上的一組輕量類IFC組件不是對等的在許多方面勝過了AWT組件IFC還吸引了更多的開發人員加盟
    由於認識到Java領域很可能在標准用戶界面工具包問題上出現分裂局面Javasoft和Netscape達成了一個交易共同實現Java基礎類(Apple公司和IBM公司也參加了JFC的開發)Netscape開發人員與Swing工程師一起合作以便把大部分的IFC的功能嵌入到Swing組件中
    起初打算讓Swing類似於Netscape的IFC然而隨著時間的推移在增加了插入式界面樣式等特性並修改了設計之後Swing大大地偏離了它原來的目標隨著Swing版本的推出雖然大量的IFC技術仍然嵌在Swing中但是Swing與IFC相似的部分已大部分消失了今天在一個功能全面的用戶界面工具包中Swing提供了AWT和IFC中最優秀的成份

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26915.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.