SWT Java从剪贴板放置/接收内容

时间:2011-12-18 20:27:16

标签: eclipse swt clipboard

我试图在Eclipse插件中将一些字符串写入剪贴板,我有一些奇怪的行为......

我使用的是预定义的TextTransfer Transfer-class,它应该足够用于字符串?! 我的问题是,无论我放在剪贴板中的字符串数量,只有最后一个实际上可以访问 - 我无法弄清楚原因。

将我的东西放在剪贴板中似乎有效,没有例外。我是这样做的:

        Clipboard cb = new Clipboard(Display.getCurrent());
        Object[] data = transferObjects.toArray(); //My strings, looks good in debug
        Transfer[] transfer = transferHandles.toArray(new Transfer[0]); //as many TextTransfer instances as objects in the data-array
        cb.setContents(data, transfer, DND.CLIPBOARD);
        cb.dispose();

我这样收到:

TextTransfer textTransfer = TextTransfer.getInstance();
        Object o = cb.getContents(textTransfer); // "o" contains the value of the above array at position n-1, so only the very last is actually returned

我不明白我做错了什么?有人看到我的错误吗?

1 个答案:

答案 0 :(得分:0)

可能是因为(来自Java-doc):

  

可以同时在系统剪贴板上放置多种类型的数据。无论何种类型,设置数据都会清除系统剪贴板中的所有先前数据。