what is java awt
Този урок за Java AWT обяснява какво е Абстрактният набор от инструменти за прозорци в Java и свързани понятия като AWT Color, Point, Graphics, AWT срещу Swing и т.н.:
Запознахме се с основните термини на GUI в един от нашите по-ранни уроци. В този урок ще обсъдим една от най-старите GUI рамки в Java, наречена „AWT Framework“. AWT е кратката форма за „Абстрактни инструменти за прозорци“.
AWT е API за създаване на GUI приложения в Java. Това е платформа-зависима рамка, т.е. GUI компонентите, принадлежащи на AWT, не са еднакви за всички платформи. Според естествения външен вид на платформата, външният вид и усещането на компонентите на AWT също се променя.
=> Проверете ВСИЧКИ уроци по Java тук.
Какво ще научите:
JAVA AWT (Набор с инструменти за абстрактни прозорци)
Java AWT създава компоненти чрез извикване на подпрограмите на родните платформи. Следователно, приложението AWT GUI ще има външния вид и усещането за Windows OS, докато работи на Windows и Mac OS изглежда и усеща, когато работи на Mac и т.н. Това обяснява зависимостта на платформата на приложенията за абстрактни прозорци.
Поради зависимостта си от платформата и някакъв тежък характер на своите компоненти, той рядко се използва в Java приложения в наши дни. Освен това има и по-нови рамки като Swing, които са леки и независими от платформата.
Swing има по-гъвкави и мощни компоненти в сравнение с AWT. Swing предлага компоненти, подобни на инструментариума за абстрактни прозорци, а също така има и по-усъвършенствани компоненти като дървета, раздели и др.
Но едно нещо, което трябва да отбележим тук, е, че Рамка на Java Swing се основава на AWT. С други думи, Swing е подобрен API и разширява рамката на абстрактния прозорец с инструменти. Така че, преди да преминем към уроци по Swing, нека да направим преглед на тази рамка.
Йерархия и компоненти на AWT
Сега да видим как изглежда йерархията на абстрактния прозорец с инструменти в Java.
По-долу е дадена диаграмата на AWT йерархията в Java.
Както е показано на горната фигура, основният компонент AWT „Компонент“ се простира от класа „Обект“. Класът на компонентите е родител на другите компоненти, включително Label, Button, List, Checkbox, Choice, Container и др.
Контейнерът е допълнително разделен на панели и прозорци. Класът на Applet произлиза от Panel, докато Frame и Dialog произлизат от компонента Window.
Сега нека обсъдим накратко тези компоненти.
Клас на компонентите
Класът Компонент е коренът на йерархията. Компонентът е абстрактен клас и отговаря за текущите цветове на фона и предния план, както и за текущия шрифт на текста.
Класът компонент капсулира свойствата и атрибутите на визуалните компоненти.
Контейнер
Компонентите на AWT на контейнера могат да съдържат други компоненти като текст, етикети, бутони, таблици, списъци и др. Контейнерът поддържа раздел за други компоненти, които се добавят към GUI.
Панел
Панелът е подклас от класа Container. Панелът е конкретен клас и не съдържа заглавието, границата или лентата с менюта. Това е контейнер, в който се съхраняват останалите компоненти. В рамката може да има повече от един панел.
Клас на прозорец
Класът на Windows е прозорец на най-високо ниво и ние можем да използваме рамки или диалогови прозорци, за да създадем прозорец. Прозорецът няма граници или ленти с менюта.
Кадър
Frame произлиза от класа Window и може да бъде преоразмерен. Рамката може да съдържа различни компоненти като бутон, етикети, полета, заглавна лента и др. Рамката се използва в повечето приложения на абстрактния прозорец с инструменти.
как да намеря ключ за сигурност за wifi -
Рамката може да бъде създадена по два начина:
# 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, НАСИЩЕНИЕ, BRIComponents) модел.
Няма да навлизаме в подробности за този клас, тъй като това е извън обхвата на този урок.
Следващата таблица изброява различните методи, предоставени от клас Color.
Конструктор / Методи | Описание |
---|---|
getBlue () | Връща компонента на синия цвят в диапазона 0-255. |
по-ярка () | Създайте по-ярка версия на текущия цвят. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Връща нов PaintContext. |
по-тъмен () | Създава по-тъмна версия на текущия цвят. |
декодиране (низ nm) | Връща определен непрозрачен цвят чрез преобразуване на низа в цяло число. |
е равно (Object obj) | Проверява дали даденият цветен обект е равен на текущия обект. |
getAlpha () | Връща алфа стойността на цвета, варираща от 0-255. |
getColor (String nm) | Връща цвят от свойствата на системата. |
getColor (String nm, Color v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Връща масив от тип float, съдържащ цветните компоненти от посоченото ColorSpace. |
getColorComponents (float () compArray) | Връща масив от тип float, съдържащ цветните компоненти от ColorSpace на Color. |
getColorSpace () | връща ColorSpace на текущия Color. |
getGreen () | Връща компонента със зелен цвят в диапазона 0-255 в sRGB пространството по подразбиране. |
getRed () | Връща компонента с червен цвят в диапазона 0-255 в sRGB пространството по подразбиране. |
getRGB () | Връща RGB стойността на текущия цвят в sRGB ColorModel по подразбиране. |
getHSBColor (float h, float s, float b) | Създава обект Цвят, използвайки цветовия модел HSB с посочени стойности. |
getTransparency () | връща стойността на прозрачността за този цвят. |
хеш код() | Връща хеш код за този цвят. |
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 () | Върнете местоположението на текущата точка. |
хеш код() | Връща хешкода за текущата точка. |
преместване (int, int) | Премества дадената точка на дадено място в координатната система (x, y). |
setLocation (int, int) | Променя местоположението на точката до посоченото местоположение. |
setLocation (точка) | Задава местоположението на точката на даденото местоположение. |
превод (int, int) | Преведете текущата точка в точка в x + dx, y + dy. |
Графичен клас AWT
Всички графични контексти в абстрактния прозорец Toolkit за изчертаване на компоненти в приложение произтичат от класа Graphics. Обектът на графичен клас съдържа информацията за състоянието, необходима за изобразяване на операции.
Информацията за състоянието обикновено съдържа:
- Кой компонент трябва да бъде нарисуван?
- Оказване и изрязване на координати.
- Текущият цвят, шрифт и клип.
- Текущата операция с логическия пиксел.
- Текущият XOR цвят
Общата декларация за класа Графика е както следва:
public abstract class Graphics extends Object
AWT режим без глава и изключване на главите
Когато имаме изискване да работим с графично базирано приложение, но без действителна клавиатура, мишка или дори дисплей, тогава това се нарича среда без глава.
JVM трябва да е наясно с такава безглава среда. Също така можем да зададем безглавата среда, като използваме инструментариум за абстрактни прозорци.
Има определени начини да направите това, както е показано по-долу:
# 1) Задайте системното свойство “java.awt.headless” на true, като използвате програмния код.
# две) Използвайте командния ред, за да зададете следното свойство за режим без глава на true:
java -Djava.awt.headless = вярно
# 3) Добавете “-Djava.awt.headless = true” към променливата на средата с име “JAVA_OPTS”, използвайки скрипт за стартиране на сървър.
Когато средата е без глава и имаме код, който зависи от дисплея, клавиатурата или мишката, а когато този код се изпълнява в безглава среда, се повдига изключението „HeadlessException“.
Общата декларация за HeadlessException е дадена по-долу:
public class HeadlessException extends UnsupportedOperationException
Избираме режим без глава в приложения, които изискват например вход на изображение въз основа на изображения. Например, ако искаме да променим изображението при всяко влизане или всеки път, когато страницата се обновява, тогава в такива случаи ще заредим изображението и не се нуждаем от клавиатура, мишка и т.н.
Java AWT срещу Swing
Нека сега разгледаме някои от разликите между Java AWT и Swing.
AWT | Люлка |
---|---|
AWT работи с 21 връстници или приспособления на операционната система, които съответстват на всеки компонент. | Swing работи само с един връстник, който е Window Object. Всички останали компоненти се изчертават чрез Swing в обекта Window. |
AWT означава „Абстрактни инструменти за Windows“. | Swing произлиза от Java Foundation Classes (JFC). |
Компонентите на AWT са с голяма тежест, тъй като AWT директно осъществява извиквания на подпрограми към подпрограмите на операционната система. | Люлеещите се компоненти са написани върху AWT и като такива компонентите са леки. |
AWT компонентите са част от пакета java.awt. | Swing компонентите са част от пакета javax.swing. |
AWT зависи от платформата. | Swing компонентите са написани на Java и са независими от платформата. |
AWT няма своя външен вид и усещане. Той адаптира външния вид и усещането на платформата, на която работи. | Swing осигурява различен собствен облик и усещане. |
AWT има само основни функции и не поддържа разширени функции като таблица, панел с раздели и т.н. | Swing предлага разширени функции като JTabbed панел, JTable и др. |
AWT е толкова добър, колкото тънък слой класове, разположени на върха на операционната система, което я прави зависима от платформата. | Swing е по-голям и освен това съдържа богата функционалност. |
AWT ни кара да пишем много неща. | Swing има вградени повечето функции. |
често задавани въпроси
В # 1) Какво представлява AWT в Java?
Отговор: AWT в Java, известен също като „Абстрактни инструменти за прозорци“, който е зависим от платформата графичен потребителски интерфейс, който предшества рамката Swing. Той е част от стандартния графичен интерфейс на API на Java, Java Foundation Classes или JFC.
qa тестер интервю въпроси и отговори pdf
В # 2) Все още ли се използва Java AWT?
Отговор: Той е почти остарял в Java, като не включва няколко компонента, които все още се използват. Също така все още има някои стари приложения или програми, работещи на по-стари платформи, които използват AWT.
В # 3) Какво е AWT и Swing в Java?
Отговор: Инструментарий за абстрактни прозорци е API, зависим от платформата, за разработване на GUI приложения в Java. Swing, от друга страна, е API за разработване на GUI и е получен от Java Foundation Classes (JFC). Компонентите AWT са с тежко тегло, докато компонентите Swing са с леко тегло.
В # 4) Каква е рамката в Java AWT?
Отговор: Рамката може да бъде дефинирана като прозорец на компонента от най-високо ниво, който има заглавие и граница. Рамката има ‘Border layout’ като оформление по подразбиране. Рамките също така генерират събития на прозорци като Затваряне, Отваряне, Затваряне, Активиране, Деактивиране и др.
В # 5) Какво е импортиране на Java AWT?
Отговор: Импортиране на Java AWT (import java.awt. *) Показва, че се нуждаем от функционалността на AWT API в нашата програма, за да можем да използваме неговите компоненти като TextFields, Buttons, Labels, List и др.
Заключение
В този урок обсъдихме общия преглед на Abstract Window Toolkit, като зависим от платформата API за разработка на GUI в Java. Той е почти остарял в Java и се заменя с другите API като Swings и JavaFX.
Не сме навлизали в подробности за всички компоненти на абстрактния набор от инструменти за прозорци, тъй като те рядко се използват сега. Следователно обсъждахме само компоненти като Frames, Color и т.н. и режима без глава, който е зададен с помощта на AWT.
В следващия урок ще започнем с уроци за Java Swing и ще ги обсъдим в детайли, тъй като повечето Java приложения днес използват Swing за разработка на GUI.
=> Внимавайте тук за простия сериал за обучение на Java.
Препоръчително четене
- Урок за интерфейс на Java и абстрактен клас с примери
- Основи на Java: Синтаксис на Java, клас Java и основни концепции на Java
- Java Integer и Java BigInteger клас с примери
- Видове класове в Java: абстрактни, конкретни, окончателни, статични
- Разполагане на Java: Създаване и изпълнение на Java JAR файл
- Урок за клас Java Scanner с примери
- Частни, абстрактни, масивни и струнни конструктори в Java
- Java Class Vs Object - Как да използвам клас и обект в Java