what is java awt
Tento výukový program Java AWT vysvetľuje, čo je Abstract Window Toolkit v Jave a súvisiace koncepty ako AWT Color, Point, Graphics, AWT vs Swing atď:
Základné pojmy grafického používateľského rozhrania sme sa zoznámili v jednom z našich predchádzajúcich tutoriálov. V tomto výučbe sa budeme zaoberať jedným z najstarších rámcov GUI v Jave, ktorý sa nazýva „AWT Framework“. AWT je skratka pre „Abstract Window Toolkit“.
AWT je API na vytváranie aplikácií GUI v Jave. Je to platformovo závislý rámec, t. J. Komponenty GUI patriace k AWT nie sú rovnaké na všetkých platformách. Pokiaľ ide o natívny vzhľad a dojem z platformy, mení sa aj vzhľad a dojem z komponentov AWT.
=> Skontrolujte VŠETKY návody Java tu.
Čo sa dozviete:
JAVA AWT (sada nástrojov pre abstraktné okná)
Java AWT vytvára komponenty volaním podprogramov natívnych platforiem. Preto bude mať aplikácia AWT GUI vzhľad a dojem operačného systému Windows, keď je spustený v systéme Windows, a vzhľad a dojem z operačného systému Mac OS, keď je spustený v systéme Mac atď. Toto vysvetľuje závislosť platformy od aplikácií Window Window Toolkit na platforme.
Vďaka svojej závislosti na platforme a akejsi ťažkej váhe svojich komponentov sa v dnešnej dobe zriedka používa v Java aplikáciách. Okrem toho existujú aj novšie rámce ako Swing, ktoré sú ľahké a nezávislé na platforme.
Swing má v porovnaní s AWT flexibilnejšie a výkonnejšie komponenty. Swing poskytuje komponenty podobné nástroju Abstract Window Toolkit a má tiež pokročilejšie komponenty, ako sú stromy, panely s kartami atď.
Tu si však treba uvedomiť jednu vec Rámec Java Swing je založené na AWT. Inými slovami, Swing je vylepšené API a rozširuje rámec Abstract Window Toolkit. Takže predtým, ako sa vrhneme na výukové programy Swing, urobme si prehľad o tomto rámci.
Hierarchia a komponenty AWT
Teraz sa pozrime, ako vyzerá hierarchia súpravy nástrojov Abstract Window Toolkit v prostredí Java.
Ďalej je uvedený diagram hierarchie AWT v Jave.
Ako je znázornené na obrázku vyššie, koreňový komponent AWT „Component“ vychádza z triedy „Object“. Trieda komponentu je nadradeným prvkom ostatných komponentov vrátane menovky, tlačidla, zoznamu, začiarkavacieho políčka, možnosti, kontajnera atď.
Kontajner je ďalej rozdelený na panely a okná. Trieda appletu je odvodená z panela, zatiaľ čo rámce a dialógové okno sú odvodené od komponentu okno.
Teraz si krátko povieme o týchto komponentoch.
Trieda komponentu
Trieda komponentov je koreňom hierarchie. Komponent je abstraktná trieda a je zodpovedný za aktuálne farby pozadia a popredia, ako aj za aktuálne písmo textu.
Trieda komponentu zapuzdruje vizuálne vlastnosti a atribúty komponentu.
Kontajner
Komponenty kontajnera AWT môžu obsahovať ďalšie komponenty, ako napríklad text, štítky, tlačidlá, tabuľky, zoznamy atď. Kontajner udržuje kartu na ďalších komponentoch, ktoré sa pridávajú do grafického používateľského rozhrania.
Panel
Panel je podtriedou triedy Kontajner. Panel je konkrétna trieda a neobsahuje nadpis, orámovanie ani panel s ponukami. Je to kontajner na uchytenie ostatných komponentov. V ráme môže byť viac ako jeden panel.
Trieda okien
Trieda Windows je okno na najvyššej úrovni a na jeho vytvorenie môžeme použiť rámy alebo dialógové okná. Okno nemá orámovanie ani pruhy ponúk.
Rám
Rám pochádza z triedy Window a dá sa zmeniť jeho veľkosť. Rámček môže obsahovať rôzne komponenty, ako sú tlačidlá, štítky, polia, záhlavie atď. Rám sa používa vo väčšine aplikácií balíka nástrojov pre abstraktné okná.
ako písať testovacie prípady pre prihlasovaciu obrazovku
Rám je možné vytvoriť dvoma spôsobmi:
# 1) Použitím objektu triedy Frame
Tu vytvoríme objekt triedy Frame vytvorením inštancie triedy Frame.
Nižšie je uvedený príklad programovania.
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 (); } }
Výkon:
# 2) Rozšírením triedy Frame
Tu vytvoríme triedu, ktorá rozširuje triedu Frame, a potom v jej konštruktore vytvoríme komponenty rámca.
Toto je zobrazené v nasledujúcom programe.
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 (); } }
Výkon:
Farebná trieda AWT
Výstup AWT, ktorý sme si ukázali vyššie, mal predvolené farby pozadia a popredia. Sada nástrojov pre abstraktné okná poskytuje triedu farieb, ktorá sa používa na vytvorenie a nastavenie farby komponentov. Farby môžeme tiež nastaviť na komponenty pomocou rámca cez vlastnosti komponentov.
Trieda Color nám umožňuje to isté programovo. Za týmto účelom používa trieda Color farebný model RGBA (RGBA = ČERVENÁ, ZELENÁ, MODRÁ, ALPHA) alebo model HSB (HSB = HUE, SATURATION, BRIComponents).
Nebudeme sa zaoberať podrobnosťami tejto triedy, pretože je to nad rámec tohto tutoriálu.
V nasledujúcej tabuľke sú uvedené rôzne metódy poskytované triedou Color.
čo je testovanie funkčnosti s príkladom
Konštruktér / Metódy | Popis |
---|---|
getBlue () | Vráti zložku modrej farby v rozsahu 0-255. |
jasnejšie () | Vytvorte jasnejšiu verziu aktuálnej farby. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Vráti nový PaintContext. |
tmavšie () | Vytvorí tmavšiu verziu aktuálnej farby. |
dekódovať (String nm) | Vráti zadanú nepriehľadnú farbu prevedením reťazca na celé číslo. |
rovná sa (Object obj) | Skontroluje, či sa daný farebný objekt rovná aktuálnemu objektu. |
getAlpha () | Vráti hodnotu alfa farby v rozmedzí od 0 do 255. |
getColor (String nm) | Vráti farbu z vlastností systému. |
getColor (String nm, Color v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float [] compArray) | Vráti pole typu float obsahujúce farebné komponenty zo zadaného ColorSpace. |
getColorComponents (float [] compArray) | Vráti pole typu float obsahujúce farebné komponenty z ColorSpace Color. |
getColorSpace () | vráti ColorSpace aktuálnej Color. |
getGreen () | Vráti zelenú farbu v rozsahu 0-255 v predvolenom priestore sRGB. |
getRed () | Vráti zložku červenej farby v rozsahu 0-255 v predvolenom priestore sRGB. |
getRGB () | Vráti hodnotu RGB aktuálnej farby v predvolenom sRGB ColorModel. |
getHSBColor (float h, float s, float b) | Vytvorí farebný objekt pomocou farebného modelu HSB so zadanými hodnotami. |
getTransparency () | vráti hodnotu priehľadnosti pre túto farbu. |
hashCode () | Vráti hašovací kód pre túto farbu. |
HSBtoRGB (float h, float s, float b) | Preveďte dané HSB na hodnotu RGB |
RGBtoHSB (int r, int g, int b, float [] hsbvals) | prevádza dané hodnoty RGB na hodnoty HSB. |
AWT Point v Jave
Trieda Point sa používa na označenie polohy. Poloha je z dvojrozmerného súradnicového systému.
Metódy | Popis |
---|---|
natiahnuť() | Vráti reťazcovú reprezentáciu bodu. |
rovná sa (Objekt) | Skontrolujte, či sú dva body rovnaké. |
getLocation () | Vráti polohu aktuálneho bodu. |
hashCode () | Vráti hašovací kód pre aktuálny bod. |
presunúť (int, int) | Presunie daný bod na dané miesto v súradnicovom systéme (x, y). |
setLocation (int, int) | Zmení umiestnenie bodu na zadané umiestnenie. |
setLocation (bod) | Nastaví umiestnenie bodu na dané miesto. |
preložiť (int, int) | Preložiť súčasný bod do bodu na x + dx, y + dy. |
Grafická trieda AWT
Všetky grafické kontexty v aplikácii Abstract Window Toolkit na kreslenie komponentov v aplikácii pochádzajú z triedy Graphics. Objekt triedy Graphics obsahuje informácie o stave potrebné na vykreslenie operácií.
Štátne informácie zvyčajne obsahujú:
- Ktorý komponent sa má nakresliť?
- Vykreslenie a orezanie súradníc.
- Aktuálna farba, písmo a klip.
- Aktuálna operácia na logickom pixeli.
- Aktuálna farba XOR
Všeobecná deklarácia triedy Grafika je nasledovná:
public abstract class Graphics extends Object
Bezhlavý režim AWT a výnimka bez hlavy
Keď máme požiadavku, že by sme mali pracovať s grafickou aplikáciou, ale bez skutočnej klávesnice, myši alebo dokonca displeja, potom sa to nazýva „bezhlavé“ prostredie.
JVM by si malo byť vedomé takéhoto bezhlavého prostredia. Bezhlavé prostredie môžeme nastaviť aj pomocou nástroja Abstract Window Toolkit.
Existuje niekoľko spôsobov, ako to urobiť, ako je uvedené nižšie:
# 1) Pomocou programovacieho kódu nastavte systémovú vlastnosť „java.awt.headless“ na hodnotu true.
#dva) Pomocou príkazového riadku nastavte nasledujúcu vlastnosť bezhlavého režimu na hodnotu true:
java -Djava.awt.headless = true
# 3) Pridajte „-Djava.awt.headless = true“ do premennej prostredia s názvom „JAVA_OPTS“ pomocou spúšťacieho skriptu servera.
Ak je prostredie bezhlavé a máme kód, ktorý je závislý na displeji, klávesnici alebo myši, a keď je tento kód spustený v bezhlavom prostredí, vyvolá sa výnimka „HeadlessException“.
Všeobecné vyhlásenie o HeadlessException je uvedené nižšie:
public class HeadlessException extends UnsupportedOperationException
Do bezhlavého režimu ideme v aplikáciách, ktoré vyžadujú napríklad prihlásenie pomocou obrázka. Napríklad, ak chceme zmeniť obrázok pri každom prihlásení alebo pri každom obnovení stránky, tak v takýchto prípadoch obrázok načítame a nevyžadujeme klávesnicu, myš a pod.
Java AWT vs. Swing
Pozrime sa teraz na niektoré rozdiely medzi programami Java AWT a Swing.
AWT | Hojdačka |
---|---|
AWT pracuje s 21 rovnocennými počítačmi alebo widgetmi operačného systému, ktoré zodpovedajú jednotlivým komponentom. | Swing pracuje iba s jedným rovnocenným členom, ktorým je Window Object. Všetky ostatné komponenty sú nakreslené Swingom v objekte Window. |
AWT je skratka pre „Abstract Windows Toolkit“. | Swing je odvodený z Java Foundation Classes (JFC). |
Komponenty AWT majú veľkú váhu, pretože AWT priamo volá podprogramy do podprogramov operačného systému. | Swing komponenty sú napísané na AWT a ako také sú komponenty ľahké. |
Komponenty AWT sú súčasťou balíka java.awt. | Swing komponenty sú súčasťou balíka javax.swing. |
AWT závisí od platformy. | Komponenty Swing sú napísané v Jave a sú nezávislé na platforme. |
AWT nemá svoj vzhľad a dojem. Prispôsobuje vzhľad a prostredie platformy, na ktorej beží. | Swing poskytuje svoj vlastný odlišný vzhľad a dojem. |
AWT má iba základné funkcie a nepodporuje pokročilé funkcie, ako je tabuľka, panel s kartami atď. | Swing poskytuje pokročilé funkcie ako panel JTabbed, JTable atď. |
AWT je rovnako dobrá ako tenká vrstva tried umiestnená na vrchole operačného systému, vďaka čomu je závislá na platforme. | Swing je väčší a obsahuje aj bohatú funkcionalitu. |
AWT nás núti písať veľa vecí. | Swing má zabudovanú väčšinu funkcií. |
často kladené otázky
Otázka 1) Čo je AWT v Jave?
Odpoveď: AWT v Jave tiež známy ako „Abstract Window Toolkit“, čo je platforma závislá na grafickom rozhraní používateľského rozhrania, ktorá predchádza rámci Swing. Je súčasťou štandardného Java GUI API, Java Foundation Classes alebo JFC.
Otázka 2) Je Java AWT stále používaná?
Odpoveď: V jazyku Java je takmer zastaraný, okrem niekoľkých stále používaných komponentov. Stále existujú niektoré staré aplikácie alebo programy spustené na starších platformách, ktoré používajú AWT.
Otázka 3) Čo je AWT a Swing v Jave?
Odpoveď: Sada nástrojov Abstract Window je platformovo závislé API na vývoj aplikácií GUI v Jave. Swing je na druhej strane API pre vývoj grafického používateľského rozhrania a je odvodený z Java Foundation Classes (JFC). Komponenty AWT sú ťažké, zatiaľ čo komponenty Swing ľahké.
Otázka č. 4) Čo je rámec v Java AWT?
Odpoveď: Rám je možné definovať ako okno súčasti najvyššej úrovne, ktoré má nadpis a ohraničenie. Rám má ako predvolené rozloženie „Rozloženie okrajov“. Rámy tiež generujú udalosti systému Windows, ako sú Zatvorené, Otvorené, Zatvorenie, Aktivovať, Deaktivované atď.
Otázka č. 5) Čo je import Java AWT?
Odpoveď: Import Java AWT (import java.awt. *) Naznačuje, že v našom programe potrebujeme funkčnosť AWT API, aby sme mohli používať jeho komponenty ako TextFields, Buttons, Labels, List atď.
Záver
V tomto tutoriáli sme diskutovali o prehľade Abstract Window Toolkit, ako platformovo závislého API pre vývoj GUI v Jave. V jazyku Java je takmer zastaraný a nahrádzajú ho iné rozhrania API, ako sú Swings a JavaFX.
Nezachádzali sme do podrobností všetkých komponentov súpravy nástrojov Abstract Window Toolkit, pretože sa teraz používajú zriedka. Preto sme diskutovali iba o komponentoch ako Rámy, Farba atď. A bezhlavý režim nastavený pomocou AWT.
V nasledujúcom tutoriále začneme s výukovými programami Java Swing a podrobne ich rozoberieme, pretože väčšina Java aplikácií dnes používa Swing na vývoj GUI.
=> Dajte si pozor na jednoduchú sériu školení Java tu.
Odporúčané čítanie
- Výukový program pre rozhranie Java a abstraktnú triedu s príkladmi
- Základy jazyka Java: Java Syntax, trieda Java a základné koncepty Java
- Celé číslo Java a trieda Java BigInteger s príkladmi
- Typy tried v prostredí Java: abstraktné, konkrétne, konečné, statické
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR
- Výukový program triedy skenerov Java s príkladmi
- Súkromné, abstraktné, zostavovacie a reťazcové konštruktory v Jave
- Objekt Java Class Vs - Ako používať triedy a objekty v Jave