2011-07-21 68 views
2

编辑:下面是基于最大的建议JFace - 在给定行索引处选择可编辑单元格?

editor.getControl().addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyReleased(KeyEvent e) { 
      Table table = viewer.getTable(); 
      int currentIndex = table.getSelectionIndex(); 

      if (e.keyCode == SWT.ARROW_DOWN) { 
       if (currentIndex != table.getItemCount() - 1) { 
        table.setSelection(currentIndex+1); 

        IStructuredSelection sel = (IStructuredSelection) viewer.getSelection(); 
        Object rowObj = sel.getFirstElement(); 

        viewer.editElement(rowObj, columnIndex); 
       } 
      } 
     } 
    }); 

我有一个的JFace的TableViewer一个列,它是可编辑的代码(通过实施EditingSupport完成)。

我希望用户能够在编辑单元格时按下向上/向下箭头移动到其上方/下方的行。下面是我有:

final TextCellEditor editor = new TextCellEditor(viewer.getTable()); 

editor.getControl().addKeyListener(new KeyAdapter() { 
    @Override 
    public void keyReleased(KeyEvent e) { 
     if (e.keyCode == SWT.ARROW_DOWN) { 
      Table table = viewer.getTable(); 
      int currentIndex = table.getSelectionIndex(); 

      if (currentIndex != table.getItemCount() - 1) { 
       table.setSelection(currentIndex+1); 
      } 
     } 
    } 
}); 

这所选择行移动到下一行,但不动的文本框,按下箭头看起来这之后即:

如何我是否将文本框设置为特定行中的单元格?

回答

6

使用方法:

org.eclipse.jface.viewers.ColumnViewer.editElement(Object element, int column) 
相关问题