Page 157 - 4836
P. 157
Кожен слухач повинен реалізовувати інтерфейс ***
Listener , де *** - тип слухача. Практично кожному з цих
інтерфейсів ( за винятком тих , в яких всього один метод )
відповідає порожній клас - заглушка *** Adapter. Кожен
метод інтерфейсу слухача приймає один параметр типу ***
Event, в якому зібрана вся інформація, що відноситься до
події. Ми не будемо детально розглядати методи отримання
цієї інформації. Як правило їх небагато і їх призначення легко
зрозуміти, а перелік методів дасть контекстна підказка Eclipse.
Щоб прив'язати слухача до об'єкта ( який підтримує
відповідний тип слухачів ) використовується метод add ***
Listener (*** Listener listener ).
Наприклад, слухач MouseListener повинен реалізувати
інтерфейс з таким самим ім'ям, якому відповідає клас -
заглушка MouseAdapter. Методи цього інтерфейсу
обробляють параметр типу MouseEvent, а реєструється слухач
методом addMouseListener (MouseListener listener). Ми не
будемо повторювати цю інформацію для інших типів
слухачів, вони працюють аналогічно.
Слухач фокуса FocusListener
Слухач FocusListener відстежує моменти, коли об'єкт
отримує фокус (тобто стає активним) або втрачає його.
Концепція фокуса дуже важлива для віконних додатків. У
кожен момент часу в вікні може бути тільки один активний
(що перебуває в фокусі) об'єкт, який отримує інформацію про
натиснутих на клавіатурі клавішах (тобто реагує на події
клавіатури), про прокрутку коліщатка мишки і т.д.
Користувач активує один з елементів управління натисканням
мишки або за допомогою клавіші Tab (перемикаючись між
ними).
Інтерфейс FocusListener має два методи:
public void focusGained (FocusEvent event) -
викликається, коли спостережуваний об'єкт отримує фокус
155