2012-06-14 30 views
3

在我們的項目中,我正在開發一個簡單的函數,它可以將數據複製到剪貼板,並在以後的任何地方使用。 這很簡單。彈出一個模式窗口,並在SWT.List中顯示該函數導出的所有文件的列表。該窗口還有兩個按鈕:「確定」&「複製到剪貼板」。確定按鈕通過shell.dispose()關閉窗口(我甚至嘗試了Shell.close())。 剪貼板功能看起來像這樣:SWT剪貼板數據在Windows剪貼板中不可用如果使用外殼程序

Clipboard clipboard = new Clipboard(Display.getDefault()); 
TextTransfer transfer = TextTransfer.getInstance(); 
String lines = ""; 
for (String line : list.getItems()) 
{ 
    lines += line; 
    lines +="\n"; 
} 
clipboard.setContents(new Object[] { lines }, new TextTransfer[] { transfer }); 

當文件導出完畢後,按鈕被激活。複製到剪貼板和使用數據正在工作,但只有當我點擊此按鈕並首先將這些數據粘貼到任何地方。如果我現在點擊「確定」並關閉窗口,數據仍然在剪貼板中。 但是,如果我點擊「複製」按鈕,然後直接「確定」而不粘貼這些數據,它會從剪貼板中丟失。

有沒有辦法將數據保存在剪貼板?

回答

3

也許你需要在設置內容後直接處理剪貼板?也就是說,當您不再需要使用剪貼板實例時,請按照Clipboard類javadoc中的說明處理它。不知道它有什麼幫助,但你可以嘗試...另請參見http://www.vogella.com/blog/2009/09/04/swt-clipboard/

+0

非常感謝。有效。我已經開始使用AWT剪貼板,但會重新考慮它。 – Romczyk