what is java awt
Ta vadnica Java AWT pojasnjuje, kaj je povzetek orodij za okna v Javi in sorodne koncepte, kot so AWT Color, Point, Graphics, AWT vs Swing itd.
Osnovne izraze za grafični uporabniški vmesnik smo spoznali v enem od naših prejšnjih vadnic. V tej vadnici bomo razpravljali o enem najstarejših okvirov GUI v Javi, imenovanem 'AWT Framework'. AWT je kratka oblika za 'Povzetek orodij'.
AWT je API za ustvarjanje GUI aplikacij v Javi. To je od platforme odvisen okvir, tj. Komponente GUI, ki pripadajo AWT, niso enake na vseh platformah. Glede na domači videz in občutek platforme se spreminja tudi videz in občutek komponent AWT.
=> Tukaj preverite VSE Vadnice za Java.
Kaj se boste naučili:
JAVA AWT (Povzetek orodij za okna)
Java AWT ustvarja komponente s klicanjem podprogramov domačih platform. Zato bo aplikacija AWT GUI imela videz in občutek sistema Windows, medtem ko deluje v sistemu Windows in Mac OS, če bo delovala v sistemu Mac in tako naprej. To pojasnjuje platformo odvisnosti aplikacij Abstract Window Toolkit.
Zaradi odvisnosti od platforme in neke vrste težke narave komponent se danes v aplikacijah Java redko uporablja. Poleg tega obstajajo tudi novejši okviri, kot je Swing, ki so lahki in neodvisni od platforme.
Swing ima v primerjavi z AWT bolj prilagodljive in zmogljive komponente. Swing ponuja komponente, podobne orodju Abstract Window Toolkit, in tudi naprednejše komponente, kot so drevesa, plošče z zavihki itd.
Toda tu je treba opozoriti na to, da Okvir Java Swing temelji na AWT. Z drugimi besedami, Swing je izboljšani API in razširja ogrodje orodja Abstract Window Toolkit. Torej, preden skočimo v vaje za Swing, si oglejmo pregled tega okvira.
Hierarhija in komponente AWT
Zdaj pa poglejmo, kako izgleda hierarhija orodja Abstract Window Toolkit v Javi.
Spodaj je prikazan diagram hierarhije AWT v Javi.
Kot je prikazano na zgornji sliki, se korenska komponenta AWT 'Component' razširi iz razreda 'Object'. Razred komponent je nadrejeni drugim komponentam, vključno z oznako, gumbom, seznamom, potrditvenim poljem, izbiro, vsebnikom itd.
Posoda je nadalje razdeljena na plošče in okna. Razred Applet izhaja iz Panel, Frame in Dialog pa iz komponente Window.
Zdaj pa na kratko razpravljajmo o teh komponentah.
Razred komponent
Razred Component je koren hierarhije. Komponenta je abstraktni razred in je odgovoren za trenutne barve ozadja in ospredja ter trenutno pisavo besedila.
Razred komponent zajema lastnosti in atribute vizualne komponente.
Zabojnik
Komponente vsebnika AWT lahko vsebujejo druge komponente, kot so besedilo, nalepke, gumbi, tabele, seznami itd. V vsebniku je zavihek drugih komponent, ki so dodane v GUI.
Panel
Plošča je podrazred razreda Container. Plošča je konkreten razred in ne vsebuje naslova, obrobe ali menijske vrstice. To je posoda za druge komponente. V okvirju je lahko več kot ena plošča.
Razred okna
Razred Windows je okno na najvišji ravni in za ustvarjanje okna lahko uporabimo okvire ali pogovorna okna. Okno nima robov ali menijskih vrstic.
Okvir
Okvir izhaja iz razreda Window in ga je mogoče spremeniti. Okvir lahko vsebuje različne komponente, kot so gumb, nalepke, polja, naslovna vrstica itd. Okvir se uporablja v večini aplikacij Abstract Window Toolkit.
razlika med c in c ++
Okvir je mogoče ustvariti na dva načina:
# 1) Z uporabo predmeta razreda Frame
Tu ustvarimo objekt razreda Frame z instanciranjem razreda Frame.
Primer programiranja je podan spodaj.
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 (); } }
Izhod:
# 2) Z razširitvijo razreda Frame
Tu ustvarimo razred, ki razširja razred Frame in nato v njegovem konstruktorju ustvarimo komponente okvira.
To je prikazano v spodnjem programu.
kako ponarediti e-poštni naslov
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 (); } }
Izhod:
Barvni razred AWT
Izhod AWT, ki smo ga prikazali zgoraj, je imel privzete barve za ozadje in ospredje. Povzetek orodij za okna vsebuje barvni razred, ki se uporablja za ustvarjanje in nastavitev barve na komponente. Barve komponent lahko nastavimo tudi z uporabo ogrodja prek lastnosti komponent.
Razred Color nam programsko omogoča enako. V ta namen barvni razred uporablja model barv RGBA (RGBA = RDEČA, ZELENA, MODRA, ALFA) ali HSB (HSB = HUE, SATURATION, BRIComponents).
Ne bomo se spuščali v podrobnosti tega predavanja, saj to presega obseg te vadnice.
Naslednja tabela navaja različne metode, ki jih ponuja razred Color.
Konstruktor / metode | Opis |
---|---|
getBlue () | Vrne komponento modre barve v območju 0-255. |
svetlejše () | Ustvarite svetlejšo različico trenutne barve. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Vrne nov PaintContext. |
temnejša () | Ustvari temnejšo različico trenutne barve. |
decode (niz nm) | Vrne določeno neprozorno barvo s pretvorbo niza v celo število. |
je enako (objekt obj) | Preveri, ali je dani barvni predmet enak trenutnemu predmetu. |
getAlpha () | Vrne vrednost alfa barve od 0 do 255. |
getColor (String nm) | Vrne barvo iz lastnosti sistema. |
getColor (String nm, Color v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Vrne polje tipa float, ki vsebuje barvne komponente iz podanega prostora ColorSpace. |
getColorComponents (float () compArray) | Vrne polje tipa float, ki vsebuje barvne komponente, iz ColorSpace v barvi. |
getColorSpace () | vrne ColorSpace trenutne barve. |
getGreen () | Vrne komponento zelene barve v območju 0-255 v privzetem prostoru sRGB. |
getRed () | Vrne komponento rdeče barve v območju od 0 do 255 v privzetem prostoru sRGB. |
getRGB () | Vrne vrednost RGB trenutne barve v privzetem sRGB ColorModel. |
getHSBColor (float h, float s, float b) | Ustvari objekt Color z uporabo barvnega modela HSB z določenimi vrednostmi. |
getTransparency () | vrne vrednost prosojnosti za to barvo. |
hashCode () | Vrne hash kodo za to barvo. |
HSBtoRGB (float h, float s, float b) | Pretvorite dani HSB v vrednost RGB |
RGBtoHSB (int r, int g, int b, float () hsbvals) | pretvori dane vrednosti RGB v vrednosti HSB. |
Točka AWT v Javi
Razred Point se uporablja za označevanje lokacije. Lokacija je iz dvodimenzionalnega koordinatnega sistema.
Metode | Opis |
---|---|
toString () | Vrni niz točke. |
je enako (objekt) | Preverite, ali sta dve točki enaki. |
getLocation () | Vrni lokacijo trenutne točke. |
hashCode () | Vrne hashcode za trenutno točko. |
premik (int, int) | Premakne dano točko na dano mesto v koordinatnem sistemu (x, y). |
setLocation (int, int) | Spremeni lokacijo točke na določeno lokacijo. |
setLocation (točka) | Nastavi lokacijo točke na določeno lokacijo. |
prevedi (int, int) | Prevedi trenutno točko v točko na x + dx, y + dy. |
Grafični tečaj AWT
Vsi grafični konteksti v orodju Abstract Window Toolkit za risanje komponent v aplikaciji izhajajo iz razreda Graphics. Predmet razreda Graphics vsebuje informacije o stanju, potrebne za upodabljanje operacij.
Informacije o stanju običajno vsebujejo:
- Katero komponento je treba narisati?
- Prikazovanje in odrezovanje koordinat.
- Trenutna barva, pisava in posnetek.
- Trenutna operacija na logični slikovni sliki.
- Trenutna barva XOR
Splošna izjava razreda Grafika je naslednja:
public abstract class Graphics extends Object
Način AWT brez glave in izjeme glave
Ko imamo zahtevo, da bi morali delati z grafično zasnovano aplikacijo, vendar brez dejanske tipkovnice, miške ali celo zaslona, potem to imenujemo 'brezglavo' okolje.
JVM bi se moral zavedati tako brezglavega okolja. Brezglavo okolje lahko nastavimo tudi z orodjem Abstract Window Toolkit.
To lahko storite na določene načine, kot je prikazano spodaj:
# 1) S programsko kodo nastavite sistemsko lastnost 'java.awt.headless' na true.
#two) Z ukazno vrstico nastavite naslednjo lastnost brezglavega načina na true:
java -Djava.awt.headless = true
# 3) V spremenljivko okolja z imenom 'JAVA_OPTS' dodajte skriptu za zagon strežnika “-Djava.awt.headless = true”.
Kadar je okolje brez glave in imamo kodo, ki je odvisna od zaslona, tipkovnice ali miške, in ko se ta koda izvede v brezglavem okolju, se pojavi izjema »HeadlessException«.
Splošna izjava o HeadlessException je podana spodaj:
public class HeadlessException extends UnsupportedOperationException
Uporabljamo način brez glave v aplikacijah, ki na primer zahtevajo prijavo slike na podlagi slike. Na primer, če želimo sliko spremeniti ob vsaki prijavi ali vsakič, ko se stran osveži, bomo v takih primerih sliko naložili in ne potrebujemo tipkovnice, miške itd.
Java AWT vs Swing
Poglejmo si zdaj nekaj razlik med Java AWT in Swing.
AWT | Gugalnica |
---|---|
AWT deluje z 21 enakovrednimi računalniki ali pripomočki operacijskega sistema, ki ustrezajo vsaki komponenti. | Swing deluje samo z enim vrstnikom, ki je objekt okna. Vse druge komponente nariše Swing znotraj predmeta Window. |
AWT pomeni 'Abstract Windows Toolkit'. | Swing izvira iz Java Foundation Classes (JFC). |
Komponente AWT so zelo težke, saj AWT neposredno kliče podprograme v podprograme operacijskega sistema. | Nihajne komponente so napisane na vrhu AWT in so kot take lahke. |
Komponente AWT so del paketa java.awt. | Swing komponente so del paketa javax.swing. |
AWT je odvisen od platforme. | Swing komponente so napisane v Javi in niso odvisne od platforme. |
AWT nima svojega videza in občutka. Prilagaja videz in občutek platforme, na kateri teče. | Gugalnica zagotavlja svoj drugačen videz in občutek. |
AWT ima samo osnovne funkcije in ne podpira naprednih funkcij, kot so tabela, plošča z zavihki itd. | Swing ponuja napredne funkcije, kot so plošča JTabbed, JTable itd. |
AWT je tako dober kot tanka plast razredov, ki sedijo na vrhu operacijskega sistema, zaradi česar je odvisen od platforme. | Gugalnica je večja in vsebuje tudi bogato funkcionalnost. |
Zaradi AWT pišemo veliko stvari. | Swing ima večino vgrajenih funkcij. |
Pogosto zastavljena vprašanja
V # 1) Kaj je AWT v Javi?
Odgovor: AWT v Javi, znan tudi kot 'Abstract Window Toolkit', ki je od platforme odvisen okvir grafičnega uporabniškega vmesnika, ki je pred okvirom Swing. Je del Java standardnega GUI API, Java Foundation Classes ali JFC.
V # 2) Ali se Java AWT še vedno uporablja?
Odgovor: V Javi je skorajda zastarel, razen nekaterih komponent, ki se še vedno uporabljajo. Prav tako še vedno obstaja nekaj starih programov ali programov, ki se izvajajo na starejših platformah in uporabljajo AWT.
V # 3) Kaj sta AWT in Swing v Javi?
Odgovor: Orodje Abstract Window je od platforme odvisen API za razvoj GUI aplikacij v Javi. Swing pa je API za razvoj grafičnega uporabniškega vmesnika in izhaja iz Java Foundation Classes (JFC). Komponente AWT so težke, Swing komponente pa lahke.
V # 4) Kakšen je okvir v Java AWT?
Odgovor: Okvir lahko definiramo kot okno komponente najvišje ravni, ki ima naslov in obrobo. Okvir ima za privzeto postavitev »Oblika obrobe«. Okvirji ustvarjajo tudi okenske dogodke, kot so Zapri, Odprto, Zapiranje, Aktiviraj, Deaktivirano itd.
V # 5) Kaj je uvoz Java AWT?
Odgovor: Uvoz Java AWT (import java.awt. *) Pomeni, da v našem programu potrebujemo funkcionalnost API-ja AWT, da lahko uporabimo njegove komponente, kot so TextFields, Buttons, Labels, List itd.
Zaključek
V tej vadnici smo razpravljali o pregledu orodja Abstract Window Toolkit, ki je od platforme odvisen API za razvoj grafičnega uporabniškega vmesnika v Javi. V Javi je skoraj zastarel in ga nadomeščajo drugi API-ji, kot sta Swings in JavaFX.
Nismo se spuščali v podrobnosti vseh komponent orodja Abstract Window Toolkit, saj se zdaj le redko uporabljajo. Zato smo razpravljali samo o komponentah, kot so Okvirji, Barva itd., In načinu brez glave, ki je nastavljen z uporabo AWT.
V naslednji vadnici bomo začeli z vajami Java Swing in jih bomo podrobno obravnavali, saj večina današnjih aplikacij Java uporablja Swing za razvoj GUI.
=> Tukaj si oglejte preproste vadbene serije Java.
Priporočeno branje
- Vadnica Java vmesnika in abstraktnega razreda s primeri
- Osnove Java: Sintaksa Java, Razred Java in Osnovni koncepti Java
- Java Integer in Java BigInteger Class z primeri
- Vrste pouka v Javi: abstraktno, konkretno, končno, statično
- Uvajanje Java: Ustvarjanje in izvajanje datoteke Java JAR
- Vadnica razreda Java Scanner Class z primeri
- Zasebni, abstraktni, nizovni in nizalni konstruktorji v Javi
- Predmet Java Class Vs - Kako uporabljati razred in predmet v Javi