what is java awt
Цей підручник з Java AWT пояснює, що таке Абстрактний набір інструментів для вікон у Java та пов'язані з ним поняття, такі як AWT Color, Point, Graphics, AWT vs Swing тощо:
Ми познайомилися з основними умовами графічного інтерфейсу в одному з наших попередніх підручників. У цьому підручнику ми обговоримо одну з найстаріших фреймворків графічного інтерфейсу в Java, яка називається “AWT Framework”. AWT - це коротка форма 'Абстрактний набір інструментів для вікон'.
AWT - це API для створення графічних програм на Java. Це платформа-залежний фреймворк, тобто компоненти графічного інтерфейсу, що належать до AWT, не однакові на всіх платформах. Відповідно до природного вигляду та відчуття платформи, вигляд та відчуття компонентів AWT також змінюються.
=> Перевірте ВСІ підручники Java тут.
Що ви дізнаєтесь:
JAVA AWT (Набір абстрактних вікон)
Java AWT створює компоненти, викликаючи підпрограми власних платформ. Отже, програма графічного інтерфейсу AWT матиме зовнішній вигляд ОС Windows під час роботи на Windows та Mac OS виглядатиме та виглядатиме під час роботи на Mac тощо. Це пояснює залежність платформи додатків Abstract Window Toolkit.
Через свою залежність від платформи та якийсь важкий характер його компонентів він сьогодні рідко використовується в додатках Java. Крім того, є також новіші фреймворки, такі як Swing, які є легкими та незалежними від платформи.
Swing має більш гнучкі та потужні компоненти порівняно з AWT. Swing надає компоненти, подібні до набору абстрактних вікон, а також має більш досконалі компоненти, такі як дерева, панелі з вкладками тощо.
Але тут слід зазначити одне, що Фреймворк Java Swing базується на AWT. Іншими словами, Swing - це вдосконалений API, який розширює структуру Абстрактного вікна. Тому, перш ніж перейти до навчальних посібників Swing, давайте оглянемо цей фреймворк.
Ієрархія та компоненти AWT
Тепер давайте подивимося, як виглядає ієрархія абстрактних віконних інструментів у Java.
Нижче наведено схему ієрархії AWT в Java.
Як показано на малюнку вище, кореневий компонент AWT 'Компонент' поширюється на клас 'Об'єкт'. Клас компонентів є батьківським для інших компонентів, включаючи Label, Button, List, Checkbox, Choice, Container тощо.
Далі контейнер розділений на панелі та вікна. Клас аплетів походить від Panel, тоді як Frame та Dialog - від компонента Window.
Тепер давайте коротко обговоримо ці компоненти.
Клас компонентів
Клас Component є коренем ієрархії. Компонент - це абстрактний клас, який відповідає за поточні кольори фону та переднього плану, а також поточний шрифт тексту.
Клас компонентів інкапсулює властивості та атрибути візуального компонента.
Контейнер
Компоненти AWT контейнера можуть містити інші компоненти, такі як текст, мітки, кнопки, таблиці, списки тощо. Контейнер зберігає вкладку щодо інших компонентів, які додаються до графічного інтерфейсу.
Панель
Панель є підкласом класу Container. Панель є конкретним класом і не містить заголовка, межі або рядка меню. Це контейнер для зберігання інших компонентів. У кадрі може бути більше однієї панелі.
Клас вікон
Клас Windows - це вікно на верхньому рівні, і ми можемо використовувати кадри або діалоги для створення вікна. Вікно не має меж або рядків меню.
Кадр
Фрейм походить від класу Window і може змінювати розмір. Фрейм може містити різні компоненти, такі як кнопки, мітки, поля, рядок заголовка тощо. Фрейм використовується у більшості програм абстрактного вікна.
oops концепції в c # з прикладами
Кадр можна створити двома способами:
# 1) За допомогою об’єкта класу Frame
Тут ми створюємо об’єкт класу Frame, створюючи екземпляр класу Frame.
Приклад програмування наведено нижче.
import java.awt.*; class FrameButton{ FrameButton (){ Frame f=new Frame(); Button b=new Button('CLICK_ME'); b.setBounds(30,50,80,30); f.add(b); f.setSize(300,300); f.setLayout(null); f.setVisible(true); } public static void main(String args()){ FrameButton f=new FrameButton (); } }
Вихід:
# 2) Розширенням класу Frame
Тут ми створюємо клас, який розширює клас Frame, а потім створюємо компоненти кадру в його конструкторі.
Це показано в програмі нижче.
import java.awt.*; class AWTButton extends Frame{ AWTButton (){ Button b=new Button('AWTButton'); b.setBounds(30,100,80,30);// setting button position add(b);//adding button into frame setSize(300,300);//frame size 300 width and 300 height setLayout(null);//no layout manager setVisible(true);//now frame will be visible, by default not visible } public static void main(String args()){ AWTButton f=new AWTButton (); } }
Вихід:
Клас кольорів AWT
Висновок AWT, який ми показали вище, мав кольори за замовчуванням для фону та переднього плану. Інструментарій абстрактних вікон надає клас кольору, який використовується для створення та встановлення кольору для компонентів. Ми також можемо встановлювати кольори для компонентів, використовуючи фреймворк через властивості компонентів.
Клас Color дозволяє нам те саме програмно. Для цього в класі Color використовується модель кольорів RGBA (RGBA = ЧЕРВОНИЙ, ЗЕЛЕНИЙ, СИНИЙ, АЛЬФА) або HSB (HSB = HUE, НАСІЧЕННЯ, БРИКОМПОНЕНТИ).
Ми не будемо вдаватися в подробиці цього класу, оскільки це виходить за рамки цього підручника.
У наступній таблиці перераховані різні методи, передбачені класом Color.
Конструктор / Методи | Опис |
---|---|
getBlue () | Повертає компонент синього кольору в діапазоні 0-255. |
яскравіше () | Створіть яскравішу версію поточного кольору. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Повертає новий PaintContext. |
темніший () | Створює темнішу версію поточного кольору. |
декодування (рядок нм) | Повертає вказаний непрозорий колір, перетворюючи рядок у ціле число. |
дорівнює (Object obj) | Перевіряє, чи заданий кольоровий об’єкт дорівнює поточному об’єкту. |
getAlpha () | Повертає значення альфа-кольору в діапазоні від 0 до 255. |
getColor (рядок нм) | Повертає колір із властивостей системи. |
getColor (рядок nm, колір v) | |
getColor (рядок nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Повертає масив типу float, що містить кольорові компоненти із зазначеного ColorSpace. |
getColorComponents (float () compArray) | Повертає масив типу float, що містить кольорові компоненти, із ColorSpace Color. |
getColorSpace () | повертає ColorSpace поточного кольору. |
getGreen () | Повертає компонент зеленого кольору в діапазоні 0-255 у просторі sRGB за замовчуванням. |
getRed () | Повертає компонент червоного кольору в діапазоні 0-255 у просторі sRGB за замовчуванням. |
getRGB () | Повертає значення RGB поточного кольору в sRGB ColorModel за замовчуванням. |
getHSBColor (float h, float s, float b) | Створює об’єкт Колір, використовуючи кольорову модель HSB із заданими значеннями. |
getTransparency () | повертає значення прозорості для цього кольору. |
hashCode () | Повертає хеш-код для цього кольору. |
HSBtoRGB (float h, float s, float b) | Перетворіть заданий HSB у значення RGB |
RGBtoHSB (int r, int g, int b, float () hsbvals) | перетворює задані значення RGB у значення HSB. |
Точка AWT в Java
Клас Point використовується для позначення місця. Місце розташування - це двовимірна система координат.
Методи | Опис |
---|---|
toString () | Повертає рядкове представлення точки. |
дорівнює (Об'єкт) | Перевірте, чи рівні два бали. |
getLocation () | Повернути розташування поточної точки. |
hashCode () | Повертає хеш-код для поточної точки. |
переміщення (int, int) | Переміщує дану точку до заданого місця в системі координат (x, y). |
setLocation (int, int) | Змінює розташування точки на вказане. |
setLocation (Точка) | Встановлює розташування точки до заданого місця. |
перекласти (int, int) | Перекладіть поточну точку в точку на x + dx, y + dy. |
AWT Graphics Class
Всі графічні контексти в наборі абстрактних вікон для малювання компонентів у програмі походять від класу Графіка. Об'єкт класу Graphics містить інформацію про стан, необхідну для візуалізації операцій.
Інформація про стан зазвичай містить:
- Який компонент слід намалювати?
- Візуалізація та відсікання координат.
- Поточний колір, шрифт та кліп.
- Поточна операція з логічним пікселем.
- Поточний колір XOR
Загальна декларація класу Графіка така:
public abstract class Graphics extends Object
Режим AWT без голови та виняток Headlessexption
Коли ми маємо вимогу, що ми повинні працювати з графічним додатком, але без реальної клавіатури, миші чи навіть дисплея, це називається «безголовим» середовищем.
JVM має знати про таке безголове середовище. Ми також можемо встановити безголове середовище за допомогою Абстрактного набору вікон.
Існують певні способи зробити це, як показано нижче:
# 1) Встановіть для властивості системи “java.awt.headless” значення true за допомогою коду програмування.
# два) За допомогою командного рядка встановіть для наступної властивості безголового режиму значення true:
java -Djava.awt.headless = true
# 3) Додайте “-Djava.awt.headless = true” до змінної середовища з назвою “JAVA_OPTS”, використовуючи сценарій запуску сервера.
Коли середовище безголове, і ми маємо код, який залежить від дисплея, клавіатури або миші, а коли цей код виконується в безголовому середовищі, виникає виняток “HeadlessException”.
Загальна декларація HeadlessException подана нижче:
public class HeadlessException extends UnsupportedOperationException
Ми переходимо до безголового режиму в програмах, які вимагають, наприклад, вхід до зображення на основі зображень. Наприклад, якщо ми хочемо змінити зображення під час кожного входу в систему або кожного разу, коли сторінка оновлюється, то в таких випадках ми завантажуємо зображення, і нам не потрібна клавіатура, миша тощо.
Java AWT проти Swing
Давайте зараз розглянемо деякі відмінності між Java AWT та Swing.
AWT | Гойдалки |
---|---|
AWT працює з 21 однолітніми або віджетами операційної системи, які відповідають кожному компоненту. | Swing працює лише з одним рівнем, який є об'єктом вікна. Усі інші компоненти намальовані Swing всередині об'єкта Window. |
AWT розшифровується як 'Абстрактний набір інструментів Windows'. | Swing походить від Java Foundation Classes (JFC). |
Компоненти AWT важкі, оскільки AWT безпосередньо здійснює виклики підпрограм до підпрограм операційної системи. | Гойдальні компоненти написані поверх AWT і як такі компоненти мають невелику вагу. |
Компоненти AWT є частиною пакету java.awt. | Гойдальні компоненти є частиною пакету javax.swing. |
AWT залежить від платформи. | Компоненти Swing написані на Java і не залежать від платформи. |
AWT не має свого зовнішнього вигляду. Він адаптує зовнішній вигляд платформи, на якій він працює. | Гойдалки надають інший власний вигляд та відчуття. |
AWT має лише основні функції та не підтримує розширені функції, такі як стіл, панель із вкладками тощо. | Swing надає розширені функції, такі як панель JTabbed, JTable тощо. |
AWT такий же хороший, як тонкий шар класів, що сидить поверх операційної системи, що робить її залежною від платформи. | Свінг більший, а також містить багаті функціональні можливості. |
AWT змушує нас писати багато речей. | Свінг має більшість вбудованих функцій. |
Часті запитання
Q # 1) Що таке AWT в Java?
Відповідь: AWT у Java, також відомий як 'Абстрактний набір інструментів для вікон', що є платформою графічного інтерфейсу графічного інтерфейсу користувача, що передує структурі Swing. Він є частиною стандартного графічного інтерфейсу API Java, класів Java Foundation або JFC.
подвійна черга c ++
Питання 2) Чи все ще використовується Java AWT?
Відповідь: У Java вона майже застаріла, якщо не використовувати кілька компонентів, які все ще використовуються. Крім того, все ще існують деякі старі програми або програми, що працюють на старих платформах, які використовують AWT.
Q # 3) Що таке AWT та Swing в Java?
Відповідь: Абстрактний набір інструментів Window - це платформа-залежний API для розробки графічних інтерфейсів у Java. Swing, з іншого боку, є API для розробки графічного інтерфейсу та походить від Java Foundation Classes (JFC). Компоненти AWT мають велику вагу, а компоненти Swing - легкими.
Q # 4) Що таке кадр у Java AWT?
Відповідь: Фрейм можна визначити як вікно компонента верхнього рівня, яке має заголовок та межу. Макет за замовчуванням має 'Макет межі'. Рамки також генерують такі події Windows, як Закрити, Відкрити, Закрити, Активувати, Деактивувати тощо.
Q # 5) Що таке імпорт Java AWT?
Відповідь: Імпорт Java AWT (import java.awt. *) Означає, що нам потрібна функціональність AWT API у нашій програмі, щоб ми могли використовувати такі компоненти, як TextFields, Buttons, Labels, List тощо.
Висновок
У цьому посібнику ми обговорили огляд Абстрактного набору інструментів вікна як платформозалежного API для розробки графічного інтерфейсу в Java. Він майже застарів у Java і замінюється іншими API, такими як Swings та JavaFX.
Ми не заглиблювались у деталі всіх компонентів Абстрактного набору вікон, оскільки зараз вони рідко використовуються. Отже, ми обговорювали лише такі компоненти, як Кадри, Колір тощо, а також режим без голови, встановлений за допомогою AWT.
У наступному підручнику ми почнемо з підручників Java Swing, і ми їх детально обговоримо, оскільки більшість програм Java сьогодні використовують Swing для розробки графічного інтерфейсу.
=> Тут слідкуйте за простими навчальними серіями Java.
Рекомендована література
- Інтерфейс Java та підручник з абстрактних класів із прикладами
- Основи Java: Синтаксис Java, клас Java та основні концепції Java
- Java Integer та клас Java BigInteger з прикладами
- Типи занять на Java: абстрактні, конкретні, заключні, статичні
- Розгортання Java: Створення та виконання файлу JAR Java
- Підручник з класу сканера Java із прикладами
- Приватні, абстрактні, масивні та рядкові конструктори в Java
- Java Class Vs Object - Як використовувати клас і об'єкт в Java