Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java.awt.datatransfer, трабл с addFlavorListener 
:(
    Опции темы
ddosia
  Дата 15.8.2008, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



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

Код

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

public class BuffDataCatcher {

    private static Clipboard sysClipbrd =
            java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();

    public BuffDataCatcher() {
        initComponents();
    }

    private void initComponents() {
        sysClipbrd.addFlavorListener(new java.awt.datatransfer.FlavorListener() {
            public void flavorsChanged(java.awt.datatransfer.FlavorEvent e) {
                sysClipbrdFlavorsChanged(e);
            }
        });
    }

    private void sysClipbrdFlavorsChanged(java.awt.datatransfer.FlavorEvent ev) {
        Transferable clipData = sysClipbrd.getContents(this);
        if (clipData == null) {
            System.out.println("Empty clipData");
        } else {
            try {
                if (clipData.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                    System.out.println(clipData.getTransferData(DataFlavor.stringFlavor));
                }
            } catch (UnsupportedFlavorException exc) {
                exc.printStackTrace();
            } catch (IOException exc) {
                exc.printStackTrace();
            }
        }
    }
}


вот, FlavorListener отрабатывает через раз, например копирую текст в окне - все прекрасно, выделяю и копирую другой блок текста в этом же окне - не отрабатывает, перехожу к другому приложению с текстом, там копирую, отрабатывает, выделяю другой блок текста в этом же приложении - опять не срабатывает. Что не так?
PM MAIL Jabber   Вверх
ddosia
  Дата 15.8.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



в поиске решения наткнулся на описание бага с бородой, в этом описании девелопер говорит что должен расширить java.awt.datatransfer и добавить пару классов (с у четом что борода этого бага начинается аж в лохматом 2002), до сих пор этих классов нету.
Порывшись еще, нашел что есть warkaround`ы (тут), но похоже там тоже дело не чисто, помогите разобраться
PM MAIL Jabber   Вверх
ddosia
Дата 16.8.2008, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.8.2008

Репутация: нет
Всего: нет



так и не нашел как решить эту проблему, напсал свою версию Clipboard в которой сделал по таймеру чтение из буффера и проверку, на то, изменились ли данные или нет, и если да - то принудительно посылаю извещение всем слушателям
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.1014 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.