做了一个有关SWT界面程序,在实现Tableviewer表内容如何可以被复制到剪切板时遇到了困难,所以在论坛求助
帖子地址:http://topic.csdn.net/u/20120315/16/5e611c9c-fe1b-4604-8e1c-d594fb989a4b.html
我再稍微总结一下:
//首先通过Tableviewer对象得到table
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) {
//按下ctrl+c时:do something
if (e.keyCode == 99 && (e.stateMask&SWT.CTRL) != 0) {
for (TableItem tableItem:table.getItems()) {
//得到选中行内容
TableItem item = table.getItem(table.getSelectionIndex());
Object bean = item.getData();
//把Object内容转化为String输出,赋值给data,一切OK
/*
TableItem类中还有两个方法:
getItems()是得到Table表所有内容
getSelection()是得到你选择的多行
具体可以看Api文档
*/
Object[] data = {Object内容转化为String输出};
clipboard = new Clipboard(Display.getCurrent());
Transfer[] transfers = new Transfer[]{TextTransfer.getInstance()};
clipboard.setContents(data, transfers);
}
}
}
});