Page 151 - 4836
P. 151

Щоб обробити натискання на кнопку, потрібно описати
                            клас,  який  реалізує  інтерфейс  MouseListener,  причому  метод
                            mouseClicked(  )  повинен  містити  обробник  події.  Далі
                            необхідно створити об'єкт цього класу і зареєструвати його як
                            слухача  цікавлячої  нас  кнопки.  Для  реєстрації  слухача
                            використовується  метод  addMouseListener  (MouseListener
                            listener).
                                   Опишемо  клас  слухача  в  межах  класу  вікна
                            SimpleWindow,      після    конструктора.     Обробник      події
                            перевірятиме, ввів користувач логін «Іван» (пароль перевіряти
                            не  будемо)  і  виводити  повідомлення  про  успіх  чи  неуспіх
                            входу  в  систему  (робота  стандартних  діалогових  вікон
                            обговорюється далі в цьому розділі):
                                   class MouseL implements MouseListener {
                                   public void mouseClicked (MouseEvent event ) {
                                   if ( loginField.getText ( ). equals ( "Іван" ))
                                   JOptionPane.showMessageDialog (null, " Вхід
                            виконаний");
                                   else JOptionPane.showMessageDialog (null, "Вхід НЕ
                            виконаний");
                                   }
                                   Public void mouseEntered ( MouseEvent event ) {}
                                   public void mouseExited ( MouseEvent event ) {}
                                   public void mousePressed ( MouseEvent event ) { }
                                   public void mouseReleased ( MouseEvent event ) {}}
                                   Ми  зробили  слухача  вкладеним  класом  класу
                            SimpleWindow,  щоб  він  міг  легко  отримати  доступ  до  його
                            внутрішніх  полів  loginField  і  passwordField.  Крім  того,  хоча
                            реально  ми  обробляємо  тільки  одне  з  п'яти  можливих  подій
                            миші,  описувати  довелося  всі  п'ять  методів  (чотири  мають
                            порожню  реалізацію).  Справа  в  тому,  що  в  іншому  випадку
                            клас довелося б оголосити абстрактним (адже він успадкував
                            від  інтерфейсу порожні заголовки методів)  і  ми не змогли б
                            створити  об'єкт  цього  класу.  А  ми  повинні  створити  об'єкт




                                                           149
   146   147   148   149   150   151   152   153   154   155   156