hhh

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          swing靈活和重用的藝術(shù) renderer/editor

          說(shuō)到GUI類(lèi)庫(kù)的重用有一個(gè)很著名的模式:Composite模式。對(duì),一個(gè)現(xiàn)代面向?qū)ο驡UI類(lèi)庫(kù)基本上都有這個(gè)模式的實(shí)現(xiàn),當(dāng)然也包括swing.不 過(guò)早一點(diǎn)如MFC就沒(méi)有完整的實(shí)現(xiàn),現(xiàn)在來(lái)看如果一個(gè)GUI類(lèi)庫(kù)連基本的Composite模式都沒(méi)有實(shí)現(xiàn)基本上感覺(jué)是出土的文物啦!
             但是我們來(lái)看即便有了Composite模式,但Composite模式通常是構(gòu)建靜態(tài)組合,如果要?jiǎng)討B(tài)的替換一個(gè)復(fù)合組件內(nèi)部的子元素如何辦呢?如此一來(lái)這個(gè)組件就只能定義自己的布局形式,而不能定死在這個(gè)布局形式內(nèi)的元素。
             其實(shí)從用戶(hù)角度來(lái)說(shuō)一個(gè)GUI元素通常就是兩種情況要么就是表現(xiàn),要么就是處于和用戶(hù)交互狀態(tài),這是它們的形態(tài)通常不一樣。所以組件不僅僅要只定義自己的布局形式,還要給于外部機(jī)會(huì)來(lái)配置當(dāng)自己的子元素處于這兩種狀態(tài)時(shí)相應(yīng)的UI組件是什么!
            
            swing通過(guò)renderer/editor達(dá)到了這種靈活性。如swing中JTable,JList,JTree等組件都只是定義了自 己的布局形式。并且都可以配置renderer/editor,這樣你的renderer/editor實(shí)現(xiàn)就接管了組件里面元素的表現(xiàn)形式和交互形態(tài)。 理論上你可以用任何JComponent作為組件里面元素的表現(xiàn)形式和交互形態(tài)。其靈活性和重用性達(dá)到了一個(gè)巔峰!
            
            以前還聊過(guò)一個(gè)JTable的例子!
            http://www.douban.com/group/topic/1112689/

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 龙陵县| 高台县| 南康市| 奉新县| 赤壁市| 专栏| 延吉市| 合川市| 光山县| 茌平县| 淮滨县| 泉州市| 深州市| 攀枝花市| 青岛市| 普兰店市| 曲阳县| 兴海县| 华阴市| 郎溪县| 平陆县| 湘阴县| 鸡泽县| 太康县| 鹤山市| 丰镇市| 察隅县| 根河市| 祁东县| 昆明市| 赤城县| 黄大仙区| 罗山县| 临沂市| 桐乡市| 忻州市| 台湾省| 随州市| 黎川县| 孝义市| 南木林县|