2012-07-21 91 views
3

我想弄清楚爲什麼設置系統剪貼板的內容不適用於我。我以編程方式設置剪貼板內容。當我使用代碼的輸出部分時,它可以工作。但是,當我嘗試在任何文本編輯器中複製/粘貼時,它是空白的。設置剪貼板內容


氣墊船編輯,代碼從GitHub:

import java.awt.HeadlessException; 
import java.awt.Toolkit; 
import java.awt.datatransfer.DataFlavor; 
import java.awt.datatransfer.StringSelection; 
import java.awt.datatransfer.UnsupportedFlavorException; 
import java.io.IOException; 

public class Test { 
    public static void main(String[] args) throws HeadlessException, 
     UnsupportedFlavorException, IOException { 

     Toolkit.getDefaultToolkit().getSystemClipboard() 
      .setContents(new StringSelection("hi there"), null); 

     System.out.println(((String) Toolkit.getDefaultToolkit() 
      .getSystemClipboard().getData(DataFlavor.stringFlavor))); 

    } 
} 
+0

你能告訴我們一個*非常*小的可編譯和可運行的程序,它證明了我們的問題,[sscce](http://sscce.org)?否則,很難猜測你可能會做錯什麼。 – 2012-07-21 22:35:50

+0

什麼是乏味的發佈在這裏?而且,我嘗試了你的代碼,它對我來說工作得很好,我很喜歡「你好」。它不適合你嗎? – 2012-07-21 22:43:35

+0

@HovercraftFullOfEels我必須把每行5個空格。也許是因爲我正在Linux上運行該程序。 – Nyx 2012-07-21 22:59:04

回答

0

Linux的剪切和粘貼是有點不可思議,這些天,因爲有這樣做的至少兩種不同的方式。總之,有時候最好只粘貼中間按鈕,其他時候最好是控制-v,有時兩者似乎都不起作用。

將autocutsel作爲後臺進程似乎有所幫助。 http://www.nongnu.org/autocutsel/

+0

我試着運行它,它並沒有停止鼠標中間的剪貼板。 – Nyx 2012-07-22 12:39:30

5
import java.awt.Toolkit; 
import java.awt.datatransfer.StringSelection; 
import java.awt.datatransfer.Clipboard; 

public class tester{ 

public static void main(String[] args){ 

    // from string to clipboard 
    StringSelection selection = new StringSelection("hi"); 
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    clipboard.setContents(selection, selection); 
} 
} 

這個程序做的。它會將字符串「hi」設置爲剪貼板。您可以將其更改爲變量。