Page 155 - 4836
P. 155
Створення слухачів за допомогою анонімних класів
Щоб кнопка ok знайшла слухача, який буде обробляти
натискання на неї, нам знадобилося описати новий
(вкладений) клас. Іноді замість вкладеного класу можна
обійтися анонімним. Як ви пам'ятаєте, анонімний клас не має
імені і в програмі може бути створений тільки один об'єкт
цього класу (створення якого поєднане з визначенням класу).
Але дуже часто, як і в нашому прикладі, слухач пишеться для
того, щоб обробляти події єдиного об'єкта - в нашому випадку
кнопки ok, а значить, використовується в програмі тільки
одного разу: під час прив'язки до цього об'єкта. Таким чином,
ми можемо замінити вкладений клас анонімним. Для цього
опис класу MouseL можна просто видалити, а команду
ok.addMouseListener (new MouseL( ));
замінити на :
ok.addMouseListener (new 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 ) { }
})
Новий варіант виглядає більш громіздко, ніж перший.
Зловживання анонімними класами може зробити програму
нечитабельною. Проте в результаті всі дії з кнопкою
(створення, налаштування її зовнішнього вигляду і команди
153