eclipse中table控件怎么具有编辑功能

2025-10-24 05:09:30

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中

}

}

eclipse中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;

eclipse中table控件怎么具有编辑功能

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中

eclipse中table控件怎么具有编辑功能

5、在createPartControl这个方法中定义列名:

String[] lm={"fenlei","mingcheng","zhujima","danwei","jiage","hyjiage"};

tv.setColumnProperties(lm);

eclipse中table控件怎么具有编辑功能

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);

eclipse中table控件怎么具有编辑功能

7、设置table的编辑类:

tv.setCellModifier(new Xinxibianji());

eclipse中table控件怎么具有编辑功能

8、运行项目,发现数据不能编辑。

eclipse中table控件怎么具有编辑功能

9、把canModify这个方法的返回值修改为true。

eclipse中table控件怎么具有编辑功能

10、运行项目,table中的数据编辑了!

eclipse中table控件怎么具有编辑功能

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢