花開有時

          花開有時,花落有時,來有時,去有時。不撕扯,只關切;不紀念,只牽掛;不感動,只明白;不尋找,只記得。
          隨筆 - 24, 文章 - 0, 評論 - 54, 引用 - 0
          數據加載中……

          定義自己的CellEditor

              定義自己的CellEditor其實不難,完整的實例可以看Eclipse的TextCellEditor與ComboBoxCellEditor(原理都差不多,但推薦看CmboboxCellEditor,它的實現簡單些)
             在具體實現前先說說CellEditor的原理:
             在點擊Table或Tree的一個Cell(單元格)或Item(節點)時激發CellEditor,如果這個CellEditor是TextCellEditor這返回一個Text供User編輯,如果
          是ComboBoxCellEditor則返回一個Combo供User選擇,如果是自定義的CellEditor則需要在CellEditor里返回一個Control
          (實現父類的createControl(Composite parent)方法。
             下面說說一個CellEditor具體的實現:
             1.首先,需要繼承CellEditor類,從而實現它的幾個方法。
                1)實現一個參數為org.eclipse.swt.widgets.Composite的構造方法,并在構造方法中調用參數為org.eclipse.swt.widgets.Composite的父類的構造方法。
                2)重寫父類的createControl(Composite parent),需要返回我們自定義的一個Contrl,比如說Button,Text,Combo,DateTime,List,Table(當然你的Cell要夠大才顯美觀)。
                3)重寫父類的doSetValue(Object value),其中的value是從Table(Tree)中一個Cell(Item)上獲得的值,可以用這個值為我們自定義的Control賦初值(就是當CellEditor被激活時出現的Control上顯示的值)。
                4)重寫父類的doGetValue()方法,return一個Object,這個Object是返回一個值給Table(Tree),然后Table(Tree)對這個值進行解析,再反映到對應的Cell(Item)上。
                5)重寫父類的doSetFocus()方法,當CellEditor被激活時,把foucus顯示的Control,一般用control的setFocus方法即可。
              ok,實現自定義的CellEditor大體就是這樣。

          posted on 2008-02-03 14:51 花開有時 閱讀(3749) 評論(1)  編輯  收藏 所屬分類: Eclipse

          評論

          # re: 定義自己的CellEditor  回復  更多評論   

          非常 不錯呀,收藏……
          2008-02-17 12:35 | 83eee
          主站蜘蛛池模板: 沿河| 鄢陵县| 从化市| 富民县| 炎陵县| 库尔勒市| 明星| 龙岩市| 栖霞市| 通江县| 宾阳县| 陆良县| 泽库县| 玉溪市| 资溪县| 凤阳县| 饶阳县| 葵青区| 蓬溪县| 颍上县| 定边县| 宁德市| 湟源县| 咸丰县| 贡山| 固始县| 平定县| 连城县| 丰都县| 北京市| 安溪县| 娄烦县| 广州市| 平昌县| 华阴市| 乌鲁木齐市| 南宁市| 阳江市| 石嘴山市| 理塘县| 娄底市|