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

SWT與Swing的比較

2013-11-23 18:46:36  來源: Java核心技術 

組件體系

  a) Swing通過在父組件上動態調用add()和remove()方法來對組件樹進行動態維護因此可以存在沒有父組件的子組件

  b) SWT通過在構造函數的參數中指定父組件因此不可能存在沒有父組件的子組件

  .   組件繪制

  a) Swing通過調用組件的paint()方法來進行組件的繪制組件進一步對他的子組件調用paint()從而完成整棵組件樹的繪制通過子類化重寫paint()方法可以完全定制一個組件的繪制

  b) SWTSWT組件只是本地平台上實際組件的一個代理實際組件采用win編程方式進行繪制繪制的過程不在JVM中完成因此子類化也不能對繪制進行完全定制當SWT組件進行繪制時他在完成了本地的繪制以後會返回JVM然後對所有已注冊的PaintListener發出通知因此通過注冊PaintListener可以對組件繪制進行一定程度上的修改

  .   事件模型

  a) SwingSwing中的事件會跟據當前的焦點進行發送父組件不能對事件進行過濾Swing中的事件監聽器都是有類型的因此每個組件所能支持的事件類型是通過方法名來限定的不能擴展

  b) SWTSWT中的事件也是根據當前的焦點進行發送父組件不能對事件進行過濾SWT中支持有類型的監聽器也支持無類型的監聽器通過addListener(typelistener)我們可以為組件添加任何類型的監聽器

  .   包設計

  a) SwingSwing是一個純粹的組件庫他沒有圖形的操作他的繪制最終轉發給Java D來完成

    b) SWTSWT包含了組件庫和圖形庫他的結構與AWT比較接近
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25708.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.