hhh

          常用鏈接

          統計

          最新評論

          swing靈活和重用的藝術 renderer/editor

          說到GUI類庫的重用有一個很著名的模式:Composite模式。對,一個現代面向對象GUI類庫基本上都有這個模式的實現,當然也包括swing.不 過早一點如MFC就沒有完整的實現,現在來看如果一個GUI類庫連基本的Composite模式都沒有實現基本上感覺是出土的文物啦!
             但是我們來看即便有了Composite模式,但Composite模式通常是構建靜態組合,如果要動態的替換一個復合組件內部的子元素如何辦呢?如此一來這個組件就只能定義自己的布局形式,而不能定死在這個布局形式內的元素。
             其實從用戶角度來說一個GUI元素通常就是兩種情況要么就是表現,要么就是處于和用戶交互狀態,這是它們的形態通常不一樣。所以組件不僅僅要只定義自己的布局形式,還要給于外部機會來配置當自己的子元素處于這兩種狀態時相應的UI組件是什么!
            
            swing通過renderer/editor達到了這種靈活性。如swing中JTable,JList,JTree等組件都只是定義了自 己的布局形式。并且都可以配置renderer/editor,這樣你的renderer/editor實現就接管了組件里面元素的表現形式和交互形態。 理論上你可以用任何JComponent作為組件里面元素的表現形式和交互形態。其靈活性和重用性達到了一個巔峰!
            
            以前還聊過一個JTable的例子!
            http://www.douban.com/group/topic/1112689/

          posted on 2006-10-28 16:44 hhh 閱讀(1151) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 镇江市| 巫山县| 霸州市| 交口县| 陕西省| 田阳县| 简阳市| 宣武区| 台北市| 乌鲁木齐市| 长泰县| 华安县| 沛县| 浑源县| 南部县| 通许县| 达拉特旗| 芜湖县| 虹口区| 花莲市| 衡东县| 锡林郭勒盟| 巩留县| 芜湖县| 崇信县| 河北省| 上栗县| 祁阳县| 堆龙德庆县| 华安县| 登封市| 信阳市| 会泽县| 尖扎县| 武安市| 呈贡县| 苗栗县| 大竹县| 河源市| 怀远县| 无锡市|