在dialog中创建一个table,在tableviewer中添加celleditor,点ok时判断celleditor每一行的值,如果有相等的值,选中重复的那一行,并让对应的celleditor获得焦点,请问如何获得焦点?代码省略如下:
TableViewer mTableViewer = ViewerMaker.getTableViewer(); CellEditor[] cellEditors = new CellEditor[length];
cellEditors[1] = new TextCellEditor(column1);
......
mTableViewer .setCellEditors(cellEditors);
mTableViewer .setCellModifier(new EntityCellModifier(...));
......public void okPress(){
    //以下是判断的算法
    String[] alias = ModelUtil.getDefaultName(...);
    int index = StringUtil.findRepeat(alias);  //重复行的行号,如果-1表示没有重复值
    if(index != -1){
        MessageDialog.open(..."不能有重复值");
        //这里如何获得重复的单元格的焦点,使其能直接编辑?
          该行可以通过index选中,可是不知道怎样使该行与cellEditor对应的单元格获得焦点。
            请大家指教!
        return;
    }
    createCommand();
    return super.okpress();
}
cellEditor[1].setFocus()方法需要返回boolean值,true的时候才能设置成功,但我跟进去看,如果该单元格没有任何事件触发(例如鼠标单击),会返回false。非常矛盾。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zhujiahill】截止到2008-07-05 00:18:40的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html