SWT Javaのクリップボードからの挿入/受信

Eclipseプラグインでクリップボードに文字列を書き込もうとしていますが、私はいくつかの奇妙な動作をしています...

私は文字列のために十分であるはずの事前定義のTextTransfer Transferクラスを使用していますか? 私の問題は、クリップボードに入れた文字列の数にかかわらず、最後のものだけが後で実際にアクセスできることです。なぜそれを理解できないのですか。

私のものをクリップボードに置くことは例外なく動作するようです。私はこのようにしています:

        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
あなたはここに記載されている同じ問題があるようです: stackoverflow.com/q/8498537/150166
追加された 著者 Martti Käärik,

1 答え

なぜなら(Java-docから)そうかもしれないからです。

同時に複数のタイプのデータをシステムクリップボードに配置することができます。データを設定すると、タイプに関係なく、以前のデータがシステムのクリップボードから消去されます。

0
追加された