- 1
沒有看之前的經驗的話,看看經驗鏈接,下面的講解和之前經驗聯系在一路的。
1、表的數據模子。
2、標簽類
3、內容供給器
4、table數據ArrayList<>
不熟悉的看看之前的經驗鏈接。
- 2
新建一個ICellModifier編纂類,讀取table中的數據,更新table中的數據:
public class Xinxibianji implements ICellModifier{
@Override
public boolean canModify(Object element, String property) {
//true :列可以點竄
//false :不克不及點竄
return false;
}
@Override
public Object getValue(Object element, String property) {
讀取tabled中的數據
return null;
}
@Override
public void modify(Object element, String property, Object value) {
把新的數據寫到table中
}
}
- 3
讀取table中的數據getValue:
Shangpinxinxi sp=(Shangpinxinxi) element;//一行數據
switch(property){
case "fenlei": //列名
return sp.getfenlei();
case "mingcheng":
return sp.getmingcheng();
case "zhujima":
return sp.getzhujima();
case "danwei":
return sp.getdanwei();
case "jiage":
return Float.toString(sp.getjiage());
case "hyjiage":
return Float.toString(sp.gethyjiage());
}
return null;
- 4
把新點竄的數據保留在table中:
TableItem ti=(TableItem)element;
Shangpinxinxi sp=(Shangpinxinxi)ti.getData(); 一行數據
switch(property){ 把新數據寫到數據模子中
case "fenlei":
sp.setfenlei((String)value);
break;
case "mingcheng":
sp.setmingcheng((String)value);
break;
case "zhujima":
sp.setzhujima((String)value);
break;
case "danwei":
sp.setdanwei((String)value);
break;
case "jiage":
sp.setjiage(Float.valueOf(value.toString()));
break;
case "hyjiage":
sp.sethyjiage(Float.valueOf(value.toString()));
break;
}
tv.update(sp, null); 把新數據更新在table中
- 5
在createPartControl這個方式中界說列名:
String[] lm={"fenlei","mingcheng","zhujima","danwei","jiage","hyjiage"};
tv.setColumnProperties(lm);
- 6
界說編纂器,幾多列就界說幾個:
CellEditor[] cell = new CellEditor[6];
cell[0]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
cell[1]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
cell[2]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
cell[3]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
cell[4]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
cell[5]=new TextCellEditor(table,SWT.SINGLE | SWT.BORDER);
tv.setCellEditors(cell);
- 7
設置table的編纂類:
tv.setCellModifier(new Xinxibianji());
- 8
運行項目,發現數據不克不及編纂。
- 9
把canModify這個方式的返回值點竄為true。
- 10
運行項目,table中的數據編纂了!