Я хочу добавить прослушиватель выбора к своему настраиваемому элементу управления, который содержит несколько кнопок, так что всякий раз, когда нажимается кнопка, конкретная функция должна выполняться элементом управления. Проблема заключается в следующем: я хочу добавить слушателя к самому элементу управления, а не по отдельности для каждой из его дочерних кнопок. Что мне делать?Как добавить слушателя в пользовательский элемент управления?
ответ
Из статьи Creating Your Own Widgets using SWT:
SWT Событие Механизм
SWT обеспечивает механизм слушателя низкого уровня, а также обычной Java «типизированного» слушателей. Каждый виджет SWT понимает addListener (int eventType, Listener listener) и notifyListeners (int eventType, Event event). Константы eventType определены в классе SWT. Когда происходит событие, виджет создает объект события SWT, содержащий соответствующую константу типа. Метод notifyListeners вызывает handleEvent (событие события) для прослушивателя. Если вам нужно повторно использовать существующее событие SWT, вы обычно используете этот механизм.
Например, если ваш виджет реализует событие выбора, вы могли бы реализовать свой «напечатал» добавлять и удалять методы следующим образом:
public void addSelectionListener(SelectionListener listener) { addListener(SWT.Selection, new TypedListener(listener)); } public void removeSelectionListener(SelectionListener listener) { removeListener(SWT.Selection, listener); }
Когда «событие выбора» происходит в виджете (скажем, когда child1), вы уведомляете слушателей выбора приложения, используя notifyListeners.
child1.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { notifyListeners(SWT.Selection, new Event()); } });
Обратите внимание, что когда мы добавляем слушателя, мы сначала завершаем его в TypedListener. Это связано с тем, что метод handleEvent (Event event) типа TypedListener создает соответствующий подкласс TypedEvent на основе типа события, а затем вызывает соответствующий метод для типизированного события. Таким образом, приложения могут добавлять Java-типизированные прослушиватели к виджетам, но реализации виджета могут использовать более эффективный механизм прослушивания нижнего уровня. Однако убедитесь, что реализация виджета предоставляет типизированный API-интерфейс прослушивателя. Приложения не должны вызывать низкоуровневые методы прослушивания. Выбранные методы прослушивателя предотвращают случайные ошибки программирования, такие как допущение, что все виджеты могут обрабатывать все типы событий или что все поля в классе Event действительны для всех событий.
- 1. Добавить изображение в пользовательский элемент управления EP
- 2. Добавить пользовательский элемент управления в окно wpf
- 3. Невозможно добавить пользовательский элемент управления в UpdatePanel
- 4. Добавить пользовательский элемент управления в asp.net страниц
- 5. Как добавить слушателя в элемент td?
- 6. TinyMCE добавить пользовательский элемент управления для windowManager
- 7. Добавить пользовательский элемент управления объектом Fabricjs
- 8. Как добавить пользовательский веб-элемент управления в ViewModel в MVC?
- 9. Как добавить полосы прокрутки в пользовательский элемент управления в WPF?
- 10. Как добавить пользовательский элемент управления в форму в VFP
- 11. Как добавить эффект «мигания» в пользовательский элемент управления?
- 12. Как добавить свойство стиля в пользовательский элемент управления ASP.Net?
- 13. Как добавить содержимое в пользовательский элемент управления XAML?
- 14. Как добавить новый пользовательский элемент управления в TabControl.ContentTemplate?
- 15. Как добавить поле «имя» в пользовательский элемент управления?
- 16. Как добавить библиотеку скриптов в XPage Пользовательский элемент управления Java
- 17. Как добавить пользовательский элемент управления (файл .cs) в MVC
- 18. Как добавить пользовательский элемент управления в ТОП другого
- 19. Как добавить пользовательский элемент управления внутри закладками страницы в xamarin.forms
- 20. Как добавить пользовательский элемент управления Swift View в Xcode
- 21. Как добавить пользовательский элемент управления в панель инструментов?
- 22. Как добавить произвольный контент в пользовательский элемент управления
- 23. Как загрузить пользовательский элемент управления в таблице
- 24. пользовательский элемент управления CakePHP
- 25. Пользовательский элемент управления кликом
- 26. Пользовательский элемент управления ASP.NET
- 27. Пользовательский сегментированный элемент управления
- 28. Создать пользовательский элемент управления?
- 29. Как добавить слушателя в edittext в пользовательский диалог
- 30. Добавить объект в пользовательский элемент управления в VB6
Если ваше управление является самой панелью или рамкой, слушатель может быть добавлен к ней. – Paniz
@Paniz Я использую SWT, поэтому в основном мой пользовательский элемент управления является составным – Anas