自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Swing和SWT比較

開發(fā) 后端
本文主要比較Swing和SWT,分別從組件體系,組件繪制,事件模型和包設(shè)計方面進行比較。

Swing和SWT簡介

Swing產(chǎn)生的主要原因就是AWT不能滿足圖形化用戶界面發(fā)展的需要。AWT設(shè)計的初衷是支持開發(fā)小應(yīng)用程序的簡單用戶界面。AWT缺少剪貼板、打印支持、鍵盤導(dǎo)航等特性;AWT功能較弱,它甚至不包括彈出式菜單或滾動窗格等基本元素。此外,AWT體系結(jié)構(gòu)還存在著其他一些嚴重的缺陷。

隨著圖形化用戶界面發(fā)展的需要,Swing出現(xiàn)了,Swing組件幾乎都是輕量級組件,與AWT相對的重量級組件相比,Swing沒有本地的對等組件,不像重量級組件那樣要在它們自己本地的不透明窗體中繪制,輕量級組件會在它們的重量級組件的窗口中繪制。

SWT本身僅僅是Eclipse組織為了開發(fā)Eclipse IDE環(huán)境所編寫的一組底層圖形界面 API。或許是無心插柳,或是有意為之,至今為止,SWT無論是在性能和外觀上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已經(jīng)開發(fā)到了2.1版本,SWT已經(jīng)十分穩(wěn)定。這里指的穩(wěn)定應(yīng)該包含兩層意思

比較Swing和SWT

1.組件體系:
a) Swing:通過在父組件上動態(tài)調(diào)用add()和remove()方法,來對組件樹進行動態(tài)維護,因此,可以存在沒有父組件的子組件。
b) SWT:通過在構(gòu)造函數(shù)的參數(shù)中,指定父組件,因此,不可能存在沒有父組件的子組件。

2.組件繪制:
a) Swing:通過調(diào)用組件的paint()方法來進行組件的繪制,組件進一步對他的子組件調(diào)用paint(),從而完成整棵組件樹的繪制。通過子類化,重寫paint()方法,可以完全定制一個組件的繪制。
b) SWT:SWT組件只是本地平臺上實際組件的一個代理,實際組件采用win32編程方式進行繪制,繪制的過程不在JVM中完成。因此,子類化也不能對繪制進行完全定制。當(dāng)SWT組件進行繪制時,他在完成了本地的繪制以后,會返回JVM,然后對所有已注冊的PaintListener發(fā)出通知,因此,通過注冊PaintListener可以對組件繪制進行一定程度上的修改。

3.事件模型:
a) Swing中的事件會跟據(jù)當(dāng)前的焦點進行發(fā)送。父組件不能對事件進行過濾。Swing中的事件監(jiān)聽器都是有類型的,因此每個組件所能支持的事件類型是通過方法名來限定的。不能擴展。
b) SWT中的事件也是根據(jù)當(dāng)前的焦點進行發(fā)送。父組件不能對事件進行過濾。SWT中支持有類型的監(jiān)聽器,也支持無類型的監(jiān)聽器,通過addListener(type,listener),我們可以為組件添加任何類型的監(jiān)聽器。

4.包設(shè)計:
a) Swing是一個純粹的組件庫,他沒有圖形的操作,他的繪制最終轉(zhuǎn)發(fā)給Java 2D來完成。
b) SWT包含了組件庫和圖形庫,他的結(jié)構(gòu)與AWT比較接近。

以上是總結(jié)Swing和SWT,希望對大家有用。

【編輯推薦】

  1. SwingWorker的實例化
  2. Swing控件可以提供聽覺反饋
  3. Java swing組件的串行化方法
  4. Swing組件的新元素Spinner Model
  5. SwingWorker單線程規(guī)則
責(zé)任編輯:佚名 來源: 中國IT實驗室
相關(guān)推薦

2009-07-15 15:15:42

比較Swing和SWT

2009-07-14 16:30:41

Swing與SWT

2009-07-16 13:37:33

Swing和AWT

2009-07-17 09:36:14

SWT和Swing的區(qū)

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 16:02:04

SWT和Swing

2009-07-14 15:12:36

SwingSWT和AWT

2009-07-15 10:23:51

Swing SWT集成

2009-07-10 17:20:38

Swing構(gòu)件AWT構(gòu)件

2009-07-15 16:39:51

AWT和Swing

2009-07-16 16:01:55

EventQueue

2009-07-17 10:25:41

AWT和SwingSWT

2009-07-17 09:55:02

事件監(jiān)聽器SWT和SwingAWT

2009-07-14 18:28:58

Swing入門

2009-07-15 14:29:24

構(gòu)造JListSwing

2009-07-15 13:06:38

Swing組件

2009-07-17 12:44:01

NetBeans開發(fā)S

2009-07-16 12:58:50

Swing控件

2009-07-10 11:31:45

Swing支持透明和不規(guī)則窗口

2009-07-17 09:44:28

Look And Fe布局管理器SWT和Swing
點贊
收藏

51CTO技術(shù)棧公眾號