what is java awt
Ovaj vodič za AWT za Java objašnjava što je Sažetak alata za prozore u Javi i srodne koncepte kao što su AWT Color, Point, Graphics, AWT vs Swing, itd.:
Upoznali smo se s osnovnim pojmovima za GUI u jednom od naših ranijih vodiča. U ovom uputstvu razgovarat ćemo o jednom od najstarijih GUI okvira u Javi pod nazivom 'AWT Framework'. AWT je kratki obrazac za 'Sažetak alata za prozore'.
AWT je API za stvaranje GUI aplikacija na Javi. To je okvir koji ovisi o platformi, tj. Komponente GUI-a koje pripadaju AWT-u nisu iste na svim platformama. Prema izvornom izgledu i stilu platforme, izgled i dojam komponenata AWT također se mijenjaju.
=> Ovdje provjerite SVE Java tutorijale.
Što ćete naučiti:
JAVA AWT (Sažetak alata za prozore)
Java AWT stvara komponente pozivanjem potprograma matičnih platformi. Dakle, AWT GUI aplikacija imat će izgled i izgled Windows OS-a dok radi na Windowsima i Mac OS-u izgled i osjećaj kada radi na Macu i tako dalje. To objašnjava ovisnost platforme aplikacija Abstract Window Toolkit.
Zbog svoje ovisnosti o platformi i svojevrsne teške naravi svojih komponenata, danas se rijetko koristi u Java aplikacijama. Osim toga, postoje i noviji okviri poput Swinga koji su lagani i neovisni o platformi.
Swing ima fleksibilnije i snažnije komponente u usporedbi s AWT-om. Swing nudi komponente slične Apstraktnom programu prozora, a ima i naprednije komponente poput drveća, ploča s karticama itd.
Ali ovdje treba napomenuti da je Okvir Java Swing temelji se na AWT-u. Drugim riječima, Swing je poboljšani API i proširuje okvir Abstract Window Toolkit. Dakle, prije nego što uskočimo u tutorijale za Swing, neka je pregled ovog okvira.
AWT hijerarhija i komponente
Sada da vidimo kako izgleda hijerarhija Apstraktnog prozora s alatima u Javi.
Dolje je dat dijagram AWT hijerarhije u Javi.
Kao što je prikazano na gornjoj slici, korijenska AWT komponenta 'Komponenta' proteže se iz klase 'Object'. Klasa komponenata nadređena je ostalim komponentama, uključujući oznaku, gumb, popis, potvrdni okvir, izbor, spremnik itd.
Spremnik je dalje podijeljen na ploče i prozore. Klasa Applet potječe iz Panela, dok Frame i Dialog izvode iz komponente Window.
Sada ćemo ukratko razgovarati o tim komponentama.
Klasa komponenata
Klasa Komponenta korijen je hijerarhije. Komponenta je apstraktna klasa i odgovorna je za trenutnu boju pozadine i prednjeg plana, kao i za trenutni font teksta.
Klasa komponenata inkapsulira svojstva i atribute vizualne komponente.
Spremnik
Komponente AWT spremnika mogu sadržavati druge komponente poput teksta, naljepnica, gumba, tablica, popisa itd. Spremnik drži karticu s ostalim komponentama koje su dodane u GUI.
Ploča
Ploča je podrazred klase Container. Panel je konkretna klasa i ne sadrži naslov, obrub ili traku izbornika. To je spremnik u kojem se nalaze ostale komponente. U okviru može biti više ploča.
Razred prozora
Windows klasa je prozor na najvišoj razini i za izradu prozora možemo koristiti okvire ili dijaloške okvire. Prozor nema obrube ili trake izbornika.
Okvir
Okvir potječe iz klase Window i može mu se promijeniti veličina. Okvir može sadržavati razne komponente poput gumba, naljepnica, polja, naslovne trake itd. Okvir se koristi u većini aplikacija Sažetak prozora s alatima.
kako napisati test slučajeve za zaslon za prijavu -
Okvir se može stvoriti na dva načina:
# 1) Korištenjem objekta klase Frame
Ovdje stvaramo objekt klase Frame instanciranjem klase Frame.
Primjer programiranja dat je u nastavku.
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 (); } }
Izlaz:
# 2) Proširivanjem klase Frame
Ovdje stvaramo klasu koja proširuje klasu Frame, a zatim stvaramo komponente okvira u njenom konstruktoru.
To je prikazano u donjem programu.
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 (); } }
Izlaz:
softver za preuzimanje videozapisa s vaše cijevi
Klasa boja AWT
Izlaz AWT koji smo gore prikazali imao je zadane boje za pozadinu i prednji plan. Alat za sažetak prozora nudi klasu boja koja se koristi za stvaranje i postavljanje boje na komponente. Također možemo postaviti boje komponentama pomoću okvira putem svojstava komponenata.
Klasa Color to nam programski omogućuje. U tu svrhu klasa Color koristi model RGBA boja (RGBA = CRVENA, ZELENA, PLAVA, ALFA) ili HSB (HSB = HUE, SATURATION, BRIComponents) model.
Nećemo ulaziti u detalje ove klase, jer je to izvan opsega ovog vodiča.
Sljedeća tablica navodi razne metode koje nudi klasa Color.
Konstruktor / Metode | Opis |
---|---|
getBlue () | Vraća komponentu plave boje u rasponu 0-255. |
svjetlije () | Stvorite svjetliju verziju trenutne boje. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Vraća novi PaintContext. |
tamnije () | Stvara tamniju verziju trenutne boje. |
dekodiranje (niz nm) | Vraća navedenu neprozirnu boju pretvaranjem niza u cijeli broj. |
jednako (objekt obj) | Provjerava je li zadani objekt boje jednak trenutnom objektu. |
getAlpha () | Vraća alfa vrijednost boje u rasponu od 0-255. |
getColor (Niz nm) | Vraća boju iz svojstava sustava. |
getColor (Niz nm, Boja v) | |
getColor (Niz nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Vraća niz tipa float koji sadrži komponente boje iz navedenog ColorSpacea. |
getColorComponents (float () compArray) | Vraća niz float tipa koji sadrži komponente boje iz ColorSpacea boje. |
getColorSpace () | vraća ColorSpace trenutne boje. |
getGreen () | Vraća komponentu zelene boje u rasponu 0-255 u zadanom sRGB prostoru. |
getRed () | Vraća komponentu crvene boje u rasponu 0-255 u zadanom sRGB prostoru. |
getRGB () | Vraća RGB vrijednost trenutne boje u zadanom sRGB ColorModel-u. |
getHSBColor (float h, float s, float b) | Stvara objekt boje pomoću HSB modela boja s navedenim vrijednostima. |
getTransparency () | vraća vrijednost prozirnosti za ovu boju. |
hashCode () | Vraća hash kôd za ovu boju. |
HSBtoRGB (plutajuće h, plutajuće s, plutajuće b) | Pretvorite zadani HSB u RGB vrijednost |
RGBtoHSB (int r, int g, int b, float () hsbvals) | pretvara zadane RGB vrijednosti u HSB vrijednosti. |
AWT točka u Javi
Klasa Point koristi se za označavanje mjesta. Lokacija je iz dvodimenzionalnog koordinatnog sustava.
Metode | Opis |
---|---|
toString () | Vrati prikaz niza točke. |
jednako (objekt) | Provjerite jesu li dva boda jednaka. |
getLocation () | Vrati mjesto trenutne točke. |
hashCode () | Vraća hashcode za trenutnu točku. |
premjestiti (int, int) | Premješta zadanu točku na dano mjesto u (x, y) koordinatnom sustavu. |
setLocation (int, int) | Mijenja mjesto točke na navedeno mjesto. |
setLocation (točka) | Postavlja mjesto točke na dano mjesto. |
prevedi (int, int) | Prevedi trenutnu točku u točku na x + dx, y + dy. |
AWT sat grafike
Svi grafički konteksti u Sažetku alata za prozore za crtanje komponenata u aplikaciji potječu iz klase Grafika. Objekt klase Graphics sadrži informacije o stanju potrebne za generiranje operacija.
Podaci o državi obično sadrže:
- Koju komponentu treba nacrtati?
- Renderiranje i isjecanje koordinata.
- Trenutačna boja, font i isječak.
- Trenutna operacija na logičkom pikselu.
- Trenutna XOR boja
Opća izjava klase Grafika je sljedeća:
public abstract class Graphics extends Object
AWT način bez glave i izuzimanje glave
Kada imamo zahtjev da bismo trebali raditi s grafičkim programom, ali bez stvarne tipkovnice, miša ili čak zaslona, tada se to naziva 'bezglavo' okruženje.
JVM bi trebao biti svjestan takvog bezglavog okruženja. Također možemo postaviti bezglavo okruženje pomoću Sažetaka alata za prozore.
Postoje određeni načini za to kako je prikazano u nastavku:
# 1) Postavite svojstvo sustava 'java.awt.headless' na true pomoću programskog koda.
#dva) Pomoću naredbenog retka postavite sljedeće svojstvo načina bez glave na true:
java -Djava.awt.headless = true
# 3) Dodajte “-Djava.awt.headless = true” u varijablu okruženja pod nazivom “JAVA_OPTS” pomoću skripte za pokretanje poslužitelja.
Kada je okruženje bez glave i imamo kôd koji ovisi o zaslonu, tipkovnici ili mišu, a kada se taj kôd izvrši u bezglavom okruženju, postavlja se iznimka 'HeadlessException'.
Opća izjava o bezglavom izuzeću dana je u nastavku:
public class HeadlessException extends UnsupportedOperationException
Idemo na način bez glave u aplikacijama koje zahtijevaju, na primjer, prijavu slike na temelju slike. Na primjer, ako želimo promijeniti sliku pri svakom prijavljivanju ili pri svakom osvježavanju stranice, tada ćemo u takvim slučajevima učitati sliku i ne trebaju nam tipkovnica, miš itd.
Java AWT vs Swing
Pogledajmo sada neke razlike između Java AWT i Swinga.
AWT | Ljuljačka |
---|---|
AWT radi s 21 ravnopravnom osobom ili widgetima operativnog sustava koji odgovaraju svakoj komponenti. | Swing radi samo s jednim vršnjakom koji je objekt prozora. Sve ostale komponente nacrtane su Swingom unutar objekta Window. |
AWT je kratica od 'Sažetak Windows alata'. | Swing je izveden iz Java Foundation Classes (JFC). |
AWT komponente su teške, jer AWT izravno upućuje pozive potprogramima podprogramima operativnog sustava. | Swing komponente su napisane na vrhu AWT-a i kao takve su lagane. |
AWT komponente dio su paketa java.awt. | Swing komponente su dio javax.swing paketa. |
AWT ovisi o platformi. | Swing komponente napisane su na Javi i neovisne su o platformi. |
AWT nema svoj izgled i dojam. Prilagođava izgled i dojam platforme na kojoj radi. | Ljuljačka pruža drugačiji izgled i osjećaj za sebe. |
AWT ima samo osnovne značajke i ne podržava napredne značajke poput tablice, ploče s karticama itd. | Swing pruža napredne značajke poput JTabbed ploče, JTable itd. |
AWT je dobar poput tankog sloja klasa koji sjede na vrhu operacijskog sustava što ga čini ovisnim o platformi. | Swing je veći i također sadrži bogatu funkcionalnost. |
AWT nas tjera da napišemo puno stvari. | Swing ima većinu ugrađenih značajki. |
Često postavljana pitanja
P # 1) Što je AWT u Javi?
Odgovor: AWT u Javi također poznat i kao 'Abstract Window Toolkit', koji ovisi o platformi, okvir grafičkog korisničkog sučelja koji prethodi Swing okviru. Dio je Java standardnog GUI API-ja, Java Foundation Classes ili JFC.
P # 2) Da li se Java AWT još uvijek koristi?
Odgovor: Gotovo je zastario u Javi, osim nekoliko komponenata koje se još uvijek koriste. Također, još uvijek postoje neke stare aplikacije ili programi koji se izvode na starijim platformama koji koriste AWT.
P # 3) Što su AWT i Swing u Javi?
Odgovor: Sažetak alata Window je API ovisno o platformi za razvoj GUI aplikacija u Javi. Swing je s druge strane API za razvoj GUI-a i izveden je iz Java Foundation Classes (JFC). AWT komponente su teške, dok su Swing komponente lagane.
P # 4) Koji je okvir u Javi AWT?
Odgovor: Okvir se može definirati kao prozor komponente najviše razine koji ima naslov i obrub. Okvir ima zadani izgled „Izgled obruba“. Okviri također generiraju Windows događaje poput Zatvori, Otvori, Zatvori, Aktiviraj, Deaktiviraj itd.
P # 5) Što je uvoz Java AWT?
Odgovor: Uvoz Java AWT (import java.awt. *) Ukazuje na to da nam je potrebna funkcionalnost AWT API-ja u našem programu kako bismo mogli koristiti njegove komponente poput TextFields, Buttons, Labels, List, itd.
Zaključak
U ovom smo tutorijalu raspravljali o pregledu Apstraktnog prozora s alatima, kao API-ju o razvoju platforme koji ovisi o platformi za Java. Gotovo je zastario u Javi i zamjenjuju ga drugi API-ji poput Swinga i JavaFX-a.
Nismo ulazili u detalje svih komponenata Apstraktnog prozorskog alata jer se sada rijetko koriste. Stoga smo razgovarali samo o komponentama poput okvira, boje itd. I načinu bez glave koji je postavljen pomoću AWT-a.
U sljedećem uputstvu započet ćemo s Java Swing tutorialima i detaljno ćemo ih raspraviti jer većina Java aplikacija danas koristi Swing za razvoj GUI-a.
=> Ovdje pripazite na jednostavnu seriju Java treninga.
Preporučena literatura
- Java sučelje i udžbenik klase sažetak sa primjerima
- Osnove Java: Java sintaksa, Java klasa i osnovni koncepti Java
- Java Integer i Java BigInteger klasa s primjerima
- Vrste nastave u Javi: sažetak, konkretno, završno, statično
- Implementacija Jave: Izrada i izvršavanje Java JAR datoteke
- Vodič za razred Java Scannera s primjerima
- Privatni, sažetak, konstruktori nizova i niza u Javi
- Java Class Vs Objekt - Kako koristiti klasu i objekt u Javi