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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CopyPasteListener, откуда взять? 
:(
    Опции темы
TrivialCore
Дата 15.9.2004, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть текстовое поле и надо отлавливать, когда юзер вклеивает текст. Где взять такой Listener?
PM MAIL   Вверх
Domestic Cat
Дата 15.9.2004, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Код

myTextField.getDocument().addDocumentListener(myListener);


а DocumentListener тут:

http://java.sun.com/j2se/1.4.2/docs/api/ja...ntListener.html


--------------------

PM   Вверх
TrivialCore
Дата 15.9.2004, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А на более низком уровне никак нельзя? Просто я при Paste меняю содержимое, а он мне в ответ: "IllegalStateException!". Мол, нел'зя менять содержимое во время нотификации.
Если не получится стандартными методами, буду ловить CTRL+V =(.
PM MAIL   Вверх
Domestic Cat
Дата 15.9.2004, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Вродe нe должен бросать. Может коd покажешь?


--------------------

PM   Вверх
TrivialCore
Дата 15.9.2004, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код у меня на работе, сейчас я дома уже =) В принципе могу на пальцах рассказать. Есть JEditorPane, к которому подключены всякие Listeners. По твоему совету подключил DocumentListener, в методе которого - insertUpdate() - запускаю цепь вызовов (начиная с getText()), целью которого является update модели содержимого панели, после чего - соответствующий update самого содержимого панели (с помощью setText()). В итоге получается, что из метода insertUpdate() я пытаюсь менять содержимое документа, что машине очень не по душе (из stack trace иксепшона я помню что-то типа write??lock??, т.е. оно блокирует возможность записи. Если интересно, могу завтра кинуть то, что получаю на консоль).
PM MAIL   Вверх
Domestic Cat
Дата 15.9.2004, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Лучше на код посмотреть smile.gif

По-моему там нужно вытянуть Document из ивента и пользоваться getText, remove, insertString,
но я нe уверен.


--------------------

PM   Вверх
ElectricalStorm
Дата 15.9.2004, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я думаю может вот чего ...
вам надо сделать что тотипа такого
Код

   protected Document createDefaultModel()
   {
       return new PlainDocument()
       {
           public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
           {
               if (str == null) return;
               String text = RichTextField.this.getText();
               int len = (text == null) ? 0 : text.length();
               if (len + str.length() > RichTextField.this.maxSize)
               {
                   return;
               }
               else
               {
                   super.insertString(offs, str, a);
               }
           }
       };
   }





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

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

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


 




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


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

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