首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

tableViewer在表格下直接编辑数据

2012-10-09 
tableViewer在表格上直接编辑数据个表格的基本功能,但这并不够好,能否为表格实现一些更好的功能呢?答案是

tableViewer在表格上直接编辑数据

个表格的基本功能,但这并不够好,能否为表格实现一些更好的功能呢?答案是肯定的。下边我们来加入直接编辑的功能。
一、要实现这个功能必须提供一个实现ICellModifier的类

?使用如下:

private void createTableViewer(Composite parent) {viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL|SWT.FULL_SELECTION|SWT.BORDER);Table table=viewer.getTable();facadeTableViewer(table);TableLayout layout=new TableLayout();table.setLayout(layout);layout.addColumnData(new ColumnWeightData(50));viewer.setContentProvider(new ViewContentProvider());viewer.setLabelProvider(new ViewLabelProvider());viewer.setSorter(new PersonCompartor());viewer.setInput(InitData.init());//设置各列的属性的名称String[] columnProperties=new String[]{"stuNo","stuName","stuAge","stuSex","stuAddr"};viewer.setColumnProperties(columnProperties);//设置修改的编辑列CellEditor[] cellEditor = new CellEditor[5];           cellEditor[0] = null;           cellEditor[1] = new ComboBoxCellEditor(table,PersonCellModifier.NAMES,SWT.READ_ONLY);           //年龄需要验证数字        cellEditor[2] = new TextCellEditor(table);                   cellEditor[3] = new CheckboxCellEditor(table);           cellEditor[4] = new TextCellEditor(table);   viewer.setCellEditors(cellEditor);//设置修改器ICellModifier  modifier=new PersonCellModifier(viewer);viewer.setCellModifier(modifier);//验证数字Text text = (Text)cellEditor[2].getControl();text.addVerifyListener(new VerifyListener(){public void verifyText(VerifyEvent e){String inStr = e.text;if (inStr.length() > 0){try{Integer.parseInt(inStr);e.doit = true;}catch(Exception ep){e.doit = false;}}}});}

?

热点排行