SWT Java размещение / получение материала из буфера обмена - PullRequest
1 голос
/ 19 декабря 2011

Я пытаюсь записать некоторые строки в буфер обмена в моем плагине 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 голосов
/ 19 декабря 2011

Может быть, потому что (из Java-документа):

В системный буфер обмена могут одновременно помещаться несколько типов данных. Установка данных удаляет все предыдущие данные из системного буфера обмена, независимо от их типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...