多语言展示
当前在线:933今日阅读:75今日分享:44

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

eclipse中table是显示数据的,但是不能修改数据,很是不变。下面分享一下table控件怎么具有编辑能力!我写的经验对你学习java有帮助的话,给我投票或者收藏!http://v.youku.com/v_show/id_XMzk1MTEzNDk5Mg==.html2eclipse TableViewer显示表中数据(mysql)1java对mysql中的表增加数据1java删除mysql数据库中的数据
工具/原料

eclipse mars 2

方法/步骤
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中的数据编辑了!

推荐信息