«вставить» слушатель в виджет SWT - PullRequest
2 голосов
/ 31 мая 2010

У меня есть приложение с виджетом SWT, скажем, org.eclipse.swt.widgets.Text, и я хочу добавить элемент управления в функцию вставки.

Идея состоит в том, что если пользователь может вставить строку идентификаторов, я обнаружу это, запустю некоторый код и вставлю объект, соответствующий идентификаторам.

Итак, я ищу какой-нибудь "ClipBoardListener", чтобы добавить его в мой виджет, но этого, похоже, не существует. Keylistener будет только ловить вставки, сделанные ключом, и тогда вам придется иметь дело с различными комбинациями клавиш для вставки в разных ОС.

На основании этого вопроса Java 1.2 Я попытался создать подкласс для класса текста и переопределить метод вставки, но это не сработало

Exception in thread "main" org.eclipse.swt.SWTException: Subclassing not allowed

В любом случае, казалось уродливым решением.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Fredrik, Обработка ModifyListner не решит вашу проблему, так как он будет вызываться каждый раз, когда вы что-то печатаете. Как я полагаю, вам интересно обрабатывать только «ПАСТУ». Как и в ModifyListner, вы не узнаете, сработало ли это из-за того, что кто-то фактически ввел данные или данные поступают через событие «PASTE» (эта вставка может быть CTRL-V, операция контекстного меню «Вставить» или другие специфичные для ОС клавиши)

1 голос
/ 01 июня 2010

Есть ModifyListener, который вы можете слушать. Он не делает различий между напечатанным текстом и вставленным текстом, но в зависимости от того, что, по вашему мнению, вы хотите сделать, может также работать.

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