Jbutton кнопка - обробка натискання, java swing і інша джава

Кожна програма, яка має графічний інтерфейс користувача не може обходитися без кнопок. В Java Swing кнопка представлена ​​класом JButton. У кнопки є різні методи для її конфігурації - установка написи на JButton, установка іконки, вирівнювання тексту, установка розмірів і так далі. Крім усього іншого розробнику необхідно навісити на JButton слухача, який буде виконуватися як тільки користувач натисне на кнопку. Як це зробити? Поговоримо про це нижче.

Раніше я писав, що все взаємодії користувача з додатком засноване на події. Не є винятком і JButton. Як тільки користувач натискає кнопку, створюється ActionEvent подія, яке передається слухачам кнопки. Для того, щоб організувати слухача Swing надає інтерфейс ActionListener, який необхідно реалізувати. Інтерфейс ActionListener вимагає тільки реалізації одного методу - actionPerformed. Приклад класу, що реалізовує інтерфейс ActionListener представлений нижче.

Після того, як обробник створений, його необхідно додати до кнопки. Робиться це за допомогою методу addActionListener. Як параметр методу передається обробник. Наприклад, це можна зробити ось так:

Тут ми створюємо спочатку кнопку. Потім створюємо екземпляр нашого слухача TestActionListener, а потім додаємо його в якості слухача до кнопки за допомогою виклику addActionListener і передаємо йому примірник обробника. Взагалі слухачів може бути невизначену кількість. Якщо нам буде необхідно два або більше слухачів, які повинні будуть по-різному реагувати на натискання кнопки, то для кожного з них викличемо addActionListener. Крім того може коли-небудь знадобитися відключити слухача і сказати йому, щоб він більше не прослуховував натискання кнопки. Це можна зробити за допомогою методу removeActionListener. Сюди в якості параметра доведеться передати посилання на слухача, якого хочемо видалити зі списку слухачів кнопки JButton.

Ну і наостанок приклад програми для демонстрації оброблювачів натискання кнопки JButton.

Варто сказати про кілька цікавих на мій погляд моментів. Перший - це використання action command. Можна помітити, що у кнопок викликається метод setActionCommand, в який для кожної кнопки передає своє значення рядка. Таким чином в додатку можна зрозуміти, яка саме кнопка була натиснута, якщо обробку натискання кількох кнопок виконує один слухач. Для того, щоб дізнатися про це у ActionEvent береться action command за допомогою методу getActionCommand.

Другий момент - для обробки події натискання кнопки JButton можна створити анонімний клас, який реалізує інтерфейс ActionListener. Це можна спостерігати ось тут:

Схожі статті