В
нас зараз є 5 кнопок, але вони не виконують ніякої дії. В Java компоненти мають спеціальний алгоритм зворотнього зв’язку і він
виконується за допомогою інтерфейсу ActionListener.
У цьому інтефейсі оголошено 1 метод:
public void
actionPerformed(ActionEvent e)
А
у всіх компонентів, які мають зворотній зв’язок, є метод
AddActionListener(ActionListener)
Він
приймає клас, що реалізує інтерфейс ActionListener,
і дописує його у свій масив слухачів. Якщо
відбувається, якась дія, що потребує виклику цих слухачів, то компонент
перебирає свій масив та викликає у кожному елементі метод actionPerformed з передачою параметра про подію (ActionEvent). Цей параметр
містить інформацію про того хто відправника та інше, зараз це не важливо.
Нам
необхідно створити цього слухача та додати до кнопки. Я думаю, що краще буде
створити свого слухача для кожної кнопки,
хоча можна б було обійтися одним та перевіряти параметри події, але цей варіант
не подобається, якщо хтось хоче, то можете написати мені у коментарях і я
розповім як це робити.
Отже,
створюємо новий клас у пакеті run який назвемо ActionListenerQuickGame та вказуємо інтерфейс ActionListener.
IDE автоматично створе клас, який реалізує цей інтерфейс, нам тільки
залишеться переписати метод actionPerformed.
Зараз він нічого особливого робити не буде, просто
виведе інформаційне вікно, що натиснули кнопку QuicGame:
public void
actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(null, "Press
QuickGame button");
}
Ви помітили клас JOptionPane. Цей клас
імплементує різні діалоги, ми будемо ними
користуватися і я по жоду діла було про нього розповідати. А зараз нам
потрібен його статичний метод showMessageDialog, в нього є декілька перегрузок, ми використовуємо найпростішу, що приймає
1 параметром батьківський елемент (у цьому випадку ми вказуємо, що його немає)
та стрічку, яка буде показана у тілі діалогу. Не забувайте натискати Ctrl-Shift-O для автоімпорту пакетів J. Клас у нас є і залишилося підключити його до кнопки. У
класі Main знаходимо стрічку з ініціалізацією кнопки та
після неї пишемо наступний код:
quickGame.addActionListener(new ActionListenerQuickGame());
Він додає до масиву дій кнопки створений нами слухач. Тепер запускаємо
та натискаємо кнопку QuickGame. Ви повинні побачити наступне:
Створіть ще 4 слухача для інший кнопок.
Слухач для кнопки виходу потрібно зробити вже готовим. Тому напишіть у
ньому такий код:
System.exit(0);
Цей метод завершує програму з кодом 0. Цей код означає, що програма
завершилась коректно.
Архів з вихідним кодом можна завантажити тут.
Щодо до шаблонів проектування. Тут використовується шаблон стратегія. Його суть у тому, що є інтерфейс, який містить метод виконання чогось, він може мати параметри або не мати їх. У наших компонентах є масив цих інтерфейсів і ми просто додаємо їх. Якщо відбувається певна подія, то викликається метод виконання всіх класів. Шаблон стратегія
Якщо виникають запитання, будь ласка пишіть їх в коментарях, я обов'язково відповім :-)
Якщо виникають запитання, будь ласка пишіть їх в коментарях, я обов'язково відповім :-)


Немає коментарів:
Дописати коментар