2011-09-19 81 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

好吧,你做的事情完全一樣,唯一的區別是,你還可以在你的表格中添加一個上下文菜單,爲複製添加菜單項,並且在選擇該菜單項時,你在前一位聽衆中做了什麼... –