Page 156 - 4836
P. 156
обробки клацання по ній) рознесені, як у випадку вкладених
класів, а знаходяться поруч, що полегшує супровід (внесення
змін) програми. У разі простих (у кілька рядків) обробників
розумно робити вибір на користь анонімних класів.
Взагалі, можна реалізувати інтерфейс слухача в будь-
якому класі, додавши до його опису директиву implements
MouseListener і визначивши в ньому необхідні методи.
Зокрема, це може бути сам клас вікна SimpleWindow. Але
найчастіше користуються анонімними і вкладеними класами
(не в останню чергу завдяки наявності адаптерів ( див. далі).
Клас MouseAdapter
Програма стала виглядати захаращеною головним
чином через те, що крім корисного для нас методу
mouseClicked ( ) нам довелося визначати порожні реалізації
всіх інших, не потрібних методів. В принципі, цього можна
уникнути.
Клас MouseAdapter реалізує інтерфейс MouseListener,
визначаючи порожні реалізації для кожного з його методів.
Можна успадкувати свого слухача від цього класу і
перевизначити ті методи, які нам потрібні.
У результаті попередній опис слухача буде виглядати
більш компактно:
ok.addMouseListener ( new MouseAdapter () { public void
mouseClicked ( MouseEvent event ) { if ( loginField.getText ( ) .
equals ( "Іван" )) JOptionPane.showMessageDialog ( null , " Вхід
виконаний " ) ; else JOptionPane.showMessageDialog ( null , "
Вхід НЕ виконаний " ) ;} } ) ;
Загальна структура слухачів
Крім слухачів MouseListener візуальні компоненти
Swing підтримують цілий ряд інших слухачів (зауважимо, що
в різних компонентах набір можливих слухачів може
відрізнятися).
154