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
   151   152   153   154   155   156   157   158   159   160   161