2011-09-19 78 views
3

这可能是一个非常愚蠢的问题,但我无法在任何地方找到答案,有没有办法让用户能够突出显示SWT表中的行,并且可以使用ctrl + c右键单击 + c复制值?SWT:具有复制/粘贴功能的表

我特别希望能够复制到Excel表格。

这是我如何创建表,

Table aTable = new Table(parent, SWT.SINGLE | SWT.BORDER 
       | SWT.FULL_SELECTION); 
aTable.setHeaderVisible(true); 
aTable.setLinesVisible(true); 

aTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); 

我已经看到了使用一个JTable但有一个SWT这方面的信息没有。如果JTable是我唯一的选择,那么使用两者的优缺点是什么?

回答

5

您可以轻松地对其进行编码。

将一个关键听众添加到您的表中,并听取Ctrl + C键。当Ctrl + C被命中后,从表格中选择,从每个TableItems中提取文本,并形成包含数据的制表符分隔字段/换行符分隔行字符串。然后将其放入剪贴板(请参阅org.eclipse.swt.dnd.Clipboard#setContents,使用TextTransfer数据类型)。

就是这样 - 您的结果将可粘贴到Excel中。

+0

但是,在鼠标上下文菜单的情况下呢? (当你点击右键时) – nbz

+2

好吧,你做的事情完全一样,唯一的区别是,你还可以在你的表格中添加一个上下文菜单,为复制添加菜单项,并且在选择该菜单项时,你在前一位听众中做了什么... –