2011-07-21 59 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) 
相關問題