Page 149 - 4836
P. 149
подія, він викличе відповідний метод у свого спостерігача. У
цьому методі і буде запрограмована реакція на подію.
Для того, щоб спостережуваний об'єкт міг викликати
метод спостерігача, він повинен знати про те, що такий
спостерігач існує. Тому у спостережуваного попередньо
повинен бути викликаний спеціальний метод, що реєструє
його спостерігача.
Зауважимо, що в даній схемі один спостерігач може
бути зареєстрований у декількох об'єктів (тобто однаково
реагувати на зміни в кожному з них), а у одного об'єкта може
бути декілька спостерігачів (тобто при виникненні події
виконується кілька незалежних методів - обробників). Це
вельми збільшує гнучкість програмування.
Механізм обробки подій бібліотеки Swing
У контексті графічного інтерфейсу користувача
спостережуваними об'єктами є елементи управління: кнопки,
прапорці, меню і т.д. Вони можуть повідомити своїм
спостерігачам про певні події, як елементарні (наведення
мишкою, натискання клавіші на клавіатурі), так і про
високорівневі (зміна тексту в текстовому полі, вибір нового
елемента в випадному списку і т.д.).
Спостерігачами повинні бути об'єкти класів, що
підтримують спеціальні інтерфейси (згадаємо, що в класі
спостерігача повинні бути певні методи, про які «знає»
спостережуваний і викликає їх при настанні події). Такі класи
в термінології Swing називаються слухачами.
Інтерфейс MouseListener і обробка подій від мишки
Ми розглянемо технологію написання слухачів на
прикладі слухачів подій мишки.
Події від мишки - один з найпопулярніших типів подій.
Практично будь-який елемент управління здатний повідомити
про те, що на нього навели мишу, клацнули по ньому і т.д.
147