Створення віконних додатків

Створення віконних додатків

Для створення віконних додатків найзручніше використовувати клас Frame. В ієрархії класів він виглядає наступним чином: За своєю природою цей клас схожий на класи Applet і Panel. В об'єкті класу Frame можна розміщувати елементи управління. Клас, похідний від Frame. може розкривати інтерфейси ActionListener і ItemListener.

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

Якщо ви запустите цю програму, то відразу ж зверніть увагу, що кнопка закриття вікна не працює. Для обробки подій вікна потрібно писати спеціальний код. Він може виглядати, наприклад, так (код розташовується в конструкторі) Це приклад визначення безіменного класу. Розглянемо його докладніше. Ми викликаємо метод addWindowListener для того, щоб призначити слухача віконних подій. Як параметр створюємо об'єкт класу WindowAdapter. Але цей клас є абстрактним! Тому ми неявно створюємо похідний від нього клас і перевизначати потрібні нам методи - в даному випадку обробку події закриття вікна (метод dispose знищує об'єкт Frame). Після цього зупиняємо віртуальну машину Java викликом методу System.exit (0). При компіляції буде створений клас з ім'ям simpleFrame $ 1.class


Важливою перевагою об'єктів Frame є те, що вони можуть містити рядок меню. Для створення меню використовуються класи MenuBar. Menu і MenuItem (операції по створенню меню зручно виконувати в конструкторі).

Лінійка меню задається за допомогою об'єкта MenuBar. Цей об'єкт потрібно спочатку створити, а потім призначити об'єкту Frame за допомогою методу setMenuBar.

Пункти меню (мають підлеглі меню) - це об'єкти класу Menu. Їх потрібно спочатку створити, а потім додати в об'єкт MenuBar за допомогою методу add.

Кінцеві пункти меню - це об'єкти класу MenuItem. Вони конструюються в три кроки. Такий об'єкт спочатку потрібно створити, потім призначити йому слухача методом addActionListener. а потім додати в об'єкт Menu за допомогою методу add.

Для обробки подій меню клас, похідний від Frame. повинен розкривати інтерфейс ActionListener. Принципи роботи ті ж, що і при обробці подій від елементів управління.

Крім простих пунктів меню можна використовувати пункти меню з "галочками" - подоба елементів управління-перемикачів. Для цього є спеціальний клас CheckboxMenuItem. Для обробки подій від таких пунктів меню клас, похідний від Frame. повинен розкривати інтерфейс ItemListener.

Схожі статті