posts - 28, comments - 27, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2006年9月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 28313
          • 排名 - 1438

          最新評論

          [rcp系列]有關Tableviewer

          Posted on 2006-09-18 15:08 小小涼粉 閱讀(1370) 評論(0)  編輯  收藏
          為了批量發布設備,需要在一個窗口中為設備命名,設定其類型等,要用到Combo,所以就用了CellEditor

          用CellEditor還是很方便的,有CheckboxCellEditor,ComboBoxCellEditor,LabelCellEditor,TextCellEditor等等。

          首先把TableColumn的名稱做成String數組,調用viewer.setColumnProperties()方法

          然后做一個CellEditor數組,數組中的每一個CellEditor都對應著每一個Column

          然后實現ICellModifier接口,做一個自己的CellModifier,并調用viewer.setCellModifier()方法

          接口中有三個方法:

          1.public boolean canModify(Object element, String property)
          用來判斷哪一個屬性可寫
          2.public Object getValue(Object element, String property)
          返回某個屬性的值
          3.public void modify(Object element, String property, Object value)
          為某個屬性賦值

          昨天碰到了很多異常,情況如下:

          1.ComboCellEditor 中對應的是Integer類型的值,如果用了String的話,就會有異常拋出。

          2.tableviewer的input中,對象的很多屬性沒有賦初始值,由此而導致了在CellModifier里面調用get或者set方法時,出現了空指針異常。

          3.update tableviewer。今天上午才找到table.addFocusListener方法,而且要在focusGained方法中進行更新。應該是由于編輯Cell的時候,focus從Table轉移到了Cell上,所以要用focusGained方法吧。

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


          網站導航:
           
          主站蜘蛛池模板: 瓦房店市| 临泽县| 遂川县| 二连浩特市| 五常市| 太康县| 襄垣县| 永川市| 天全县| 安康市| 清丰县| 习水县| 台东县| 凤凰县| 洛南县| 禄丰县| 阳泉市| 无棣县| 渝北区| 宿松县| 五原县| 元朗区| 马公市| 太保市| 乌拉特前旗| 卢湾区| 郁南县| 依兰县| 巫山县| 聊城市| 西城区| 清远市| 平乡县| 湘潭县| 阿巴嘎旗| 四会市| 西城区| 通榆县| 玉门市| 调兵山市| 长乐市|