final Display display = Display.getDefault();
createContents();
shell.open();
MyActionGroup actionGroup=new MyActionGroup(tableViewer);
actionGroup.fillContextMenu(new MenuManager());
tableViewer.setColumnProperties(new String []{"0","1","2","3"});
org.eclipse.jface.viewers.CellEditor[] cellEditor=new org.eclipse.jface.viewers.CellEditor[4];
cellEditor[0]=null;
cellEditor[1]= new ComboBoxCellEditor(tableViewer.getTable(),names,SWT.READ_ONLY);
cellEditor[2]= new TextCellEditor(tableViewer.getTable());
cellEditor[3]= new ComboBoxCellEditor(tableViewer.getTable(),name2,SWT.READ_ONLY);
tableViewer.setCellEditors((org.eclipse.jface.viewers.CellEditor[]) cellEditor);
tableViewer.setCellModifier(new MyCellModifier());
Text text=(Text)((org.eclipse.jface.viewers.CellEditor) cellEditor[2]).getControl();
text.addVerifyListener(new VerifyListener(){
public void verifyText(VerifyEvent e)
{
e.doit="0123456789".indexOf(e.text)>=0;
}
public void verifyText1(VerifyEvent arg0) {

}、、、、、、、、、、、、、、、、、MyCellModifier//////////////////////////////////////class MyCellModifier implements ICellModifier
{ public boolean canModify(Object element,String property)
{
return true;
}
/**
*表格记录对象  element是什么格式的
*/ public Object getValue(Object element,String property)
{
String[] item=(String[] )element;
TableItem o=(TableItem) element;//假设elements可以转化为字符窜数组
if(property.equals("0"))
{
return item[0];//return o.getText(0);
}else if (property.equals("1"))
{
return item[1];//return o.getText(1);
}else if (property.equals("2"))
{
return item[2];//return o.getText(2);
}else if (property.equals("3"))
{
return item[3];//return o.getText(3);
}
return "";
}//getValue /*
*element 表格记录对象    
*property  列的名字
*/
public void modify(Object element ,String property,Object value)
{
TableItem tableItem=(TableItem)element;
//(字符窜数组)o=(字符窜数组)element ;
if(property.equals("0"))//属性名
{
String newValue=(String )value;
if(newValue==""||newValue==null)return ;
tableItem.setText(0,newValue);
}else if (property.equals("1"))//类型  comboBox
{
Integer newValue=(Integer )value;
tableItem.setText(1,names[newValue.intValue()]);
}else if (property.equals("2"))//长度
{
String newValue=(String )value;
if(newValue==""||newValue==null)return ;
else 
{
tableItem.setText(2,newValue);
}
}else if (property.equals("3"))//是否为空 ComboBox
{
Integer newValue=(Integer)value;
tableItem.setText(3,names[newValue.intValue()]);
}else
{return ;}
tableViewer.update(tableItem,null); }
}//class MyCellModifier 结束