Page 166 - 4836
P. 166
чи була натиснута саме права кнопка миші. Методи getX () і
getY() повертають координати курсора миші щодо
спостережуваного компонента.
Інтерфейс Action (дія) і клас AbstractAction
Дуже часто одна і та ж команда дублюється в
графічному інтерфейсі в декількох місцях. Наприклад,
команда «Копіювати» може бути присутнім в головному
меню вікна, в контекстному меню деякого об'єкта, а також у
вигляді кнопки на інструментальній панелі. Це необхідно для
зручності користування програмою. Однак, прив'язувати до
всіх цих об'єктах (кнопкам і командам меню) однакових
слухачів досить утомливо. Більш того, всі ці команди
однаково повинні реагувати на зміни стану програми: якщо
копіювання з якихось причин стає неможливим, то всі
елементи управління, що представляють дану команду,
повинні зробитися неактивними.
Для спрощення роботи в таких ситуаціях передбачений
інтерфейс Action. Він збирає в одному місці все, що
відноситься до деякого дії: обробник, показник активності,
спливаючу підказку, значок і т.д.
Інтерфейс Action успадкований від інтерфейсу
ActionListener, тому його головний метод - actionPerformed
(ActionEvent event). Саме тут програмується сама дія. Але
крім цього за допомогою методу putValue (String key, Object
value) можна задати одне з додаткових властивостей дії.
Перший параметр - строковий ідентифікатор властивості. Він
може приймати одне із значень, описаних в константах
інтерфейсу Action. Другий параметр - об'єкт, що представляє
собою значення властивості.
Основні властивості інтерфейсу Action (точніше,
відповідні їм константи):
164