1.如果想把表中的内容copy下来,然后粘贴到某个地方的话,可以使用如下方法:
private void copy() {
final Table table = tableViewer.getTable();
table.addKeyListener(new KeyListener() {

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == 99 && (e.stateMask&SWT.CTRL) != 0) {
for (TableItem tableItem:table.getItems()) {
Object[] data = {"4"};
clipboard = new Clipboard(Display.getCurrent());
Transfer[] transfers = new Transfer[]{TextTransfer.getInstance()};
clipboard.setContents(data, transfers);
}
}
}
});
}
上面代码可以把4拷贝到某个文档,关于SWT 的clipboard用法,可以参考:http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/SWTClipboardExample.htm
2.如果想copy某个单元格的内容的话,可以把上面的data换成此单元格的内容,或者你可以使用TableEditor的方式,这样表的每个单元格都可以编辑和复制粘贴操作:
    TableItem item = table.getItem(i);
    TableEditor columnTableEditor= new TableEditor(table);
    Text columnText = new Text(table, SWT.NONE);
columnText.setText(item.getText(INDEX));
columnTableEditor.grabHorizontal = true;
columnTableEditor.setEditor(columnText, item, INDEX);代码里的INDEX是你想要贴Editor的列索引值。不知道这个满不满足楼主需求

解决方案 »

  1.   

    假如你tableview绑定的是一个TestBean对象List,而且你的表是只允许单行选择的话,
    获取当前行的方法就是:
    TableItem item = table.getItem(table.getSelectionIndex());
    TestBean bean = (TestBean)bean.getData();得出来的bean就是当前行的内容
    然后你把bean的内容赋值到剪贴板上就行了
      

  2.   

    假如你tableview绑定的是一个TestBean对象List,而且你的表是只允许单行选择的话,
    获取当前行的方法就是:
    TableItem item = table.getItem(table.getSelectionIndex());
    TestBean bean = (TestBean)bean.getData();得出来的bean就是当前行的内容
    然后你把bean的内容赋值到剪贴板上就行了
    那如果没绑定bean呢