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

 时间:2026-02-13 23:32:38

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控件怎么具有编辑功能

  • box-sizing的作用? 怎么用?
  • WPS2019 Word怎么制作在线员工培训报告书
  • PS移花接木之海报电影人物的合成?
  • Axure RP怎么创建新的文件夹
  • Canvas的使用方法,绘制运动图形
  • 热门搜索
    诵读经典手抄报 法在我心中手抄报 清明节文明祭祀手抄报 小学生中国梦手抄报 小学生交通安全手抄报 初中手抄报图片大全 以环保为主题的手抄报 手抄报中国梦 小学生法律手抄报 艺术节手抄报内容