Jbutton, jgroupbutton, action

Бібліотека Swing включає абсолютно всі придумані на сьогоднішній день елементи управління. До них відносяться кнопки, прапорці, перемикачі, меню і його елементи. і багато іншого. Всі ці елементи в бібліотеці пов'язані, оскільки вони успадковані від абстрактного класу AbstractButton. визначає поведінку будь-якого компонента, що претендує на звання елемента управління.

кнопки JButton

Кнопки JButton крім власного зовнішнього вигляду не включають практично нічого унікального. Тому все, що вірно для кнопок, буде вірно і для інших елементів управління. Приклад коду створення звичайної кнопки:

Основний час роботи з кнопками пов'язано не стільки з їх створенням і налаштуванням, скільки з розміщенням в контейнері і написанням обробників подій.

Зовнішній вигляд кнопок JButton можна легко змінити, не змінюючи менеджера зовнішнього вигляду і поведінки. З інтерфейсом кнопок можна робити практично все - зіставляти кожній дії користувача своє зображення, прибирати рамку, зафарбовувати в будь-який колір, переміщати вміст по різних кутах, не малювати фокус.

Розглянемо приклад, в якому будуть створені кнопки JButton різних форм і розмірів.

У прикладі створюється невелике вікно з менеджером послідовного розташування FlowLayout. У формі міститься кілька кнопок, для кожної з яких використовується свій спосіб представлення зовнішнього вигляду. На скріншоті представлений інтерфейс вікна.

Jbutton, jgroupbutton, action

Першою в контейнер поміщається звичайнісінька кнопка. Потім слід кнопка, на якій замість тексту розташовуються іконки на «всі випадки життя». Для визначення іконок застосовуються властивості, перераховані в таблиці.

Отримання ефекту «наведення миші». Коли покажчик миші виявляється на кнопці, з'являється ця ікона. Зазвичай в цьому випадку використовується та ж іконка, тільки до неї додається ефект обсягу або змінюється колір частини іконки.

Подання іконки, яка відображається при натисканні на кнопці. Іконка залишається до тих пір, поки кнопка миші не відпущу.

Якщо ви задаєте іконку за допомогою даного властивості, то, коли кнопка буде відключена (метод setEnabled (false)), з'явиться спеціальна іконка. Якщо спеціальної іконки немає, а звичайна іконка є, то в якості іконки для відключеною кнопки буде використана чорно-біла копія звичайної іконки.

Якщо вивести кнопку з іконками на екран «як є», вона буде виглядати не дуже добре, оскільки у неї залишаться всі властиві звичайної кнопці з текстом властивості - буде малюватися рамка, при наявності фокусу з'явиться контур, а при натисканні вона буде зафарбовувати темним кольором. Щоб прибрати ці ефекти, в прикладі і задіюються методи setBorderPainted (). setFocusPainted () і setContentAreaFilled ().

Метод setBorderPainted () дозволяє відключити промальовування рамки. Те ж саме можна зробити викликом setBorder (null). але в цьому випадку не можна повернути кнопці її рамку назад. Метод setFocusPainted () відключає промальовування спеціального контуру, який проявляється, якщо кнопка має фокусом введення. setContentAreaFilled () дає можливість відключити зафарбовування кнопки в натиснутому стані. З цими методами краще бути обережніше, тому що користувачеві з такою кнопкою працювати набагато складніше: буде незрозуміло, обрана кнопка чи ні, де вона починається і т. П. Застосовувати ці методи краще тільки в тих додатках, в яких весь інтерфейс заснований на різноманітних зображеннях (наприклад, в іграх).

Методом setBackground () можна встановлювати колір заповнення JButton. Колір заповнення зміниться тільки в тому випадку, якщо у кнопки включено властивість непрозорості (opaque). За замовчуванням воно встановлено.

Кнопки JButton також, як і написи JLabel, дозволяють визначати інтерфейс з використанням HTML, що разом з широкими можливостями по налаштуванню розташування вмісту і по управлінню всіма аспектами зовнішнього вигляду кнопок дає необмежену владу над видом програми.

Налаштування кнопок JButton

У таблиці представлені параметри, що дозволяють виконати певні налаштування інтерфейсу кнопок JButton.