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

          [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方法吧。

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


          網站導航:
           
          主站蜘蛛池模板: 宁化县| 泰安市| 汽车| 天台县| 柳林县| 波密县| 九龙城区| 东乡县| 饶河县| 连州市| 乌恰县| 丹东市| 华安县| 正阳县| 蒲江县| 临猗县| 东乌| 新邵县| 开封市| 鄂州市| 松溪县| 北宁市| 和田县| 都江堰市| 阳江市| 晋州市| 鹿邑县| 拜泉县| 子长县| 上高县| 白银市| 商城县| 武川县| 连城县| 绥阳县| 陇川县| 望城县| 稻城县| 昌黎县| 庆城县| 灵武市|