what is java awt
Acest tutorial Java AWT explică ce este Abstract Window Toolkit în Java și concepte conexe precum AWT Color, Point, Graphics, AWT vs Swing, etc:
Am fost introduși în termenii de bază GUI într-unul dintre tutorialele noastre anterioare. În acest tutorial, vom discuta despre unul dintre cele mai vechi cadre GUI din Java numit „AWT Framework”. AWT este forma scurtă pentru „Abstract Window Toolkit”.
AWT este un API pentru crearea de aplicații GUI în Java. Este un cadru dependent de platformă, adică componentele GUI aparținând AWT nu sunt aceleași pe toate platformele. Conform aspectului nativ al platformei, aspectul componentelor AWT se schimbă, de asemenea.
=> Verificați TOATE Tutorialele Java aici.
Ce veți învăța:
JAVA AWT (Abstract Window Toolkit)
Java AWT creează componente apelând subrutinele platformelor native. Prin urmare, o aplicație GUT AWT va avea aspectul sistemului de operare Windows în timp ce rulează pe Windows și Mac OS arată și se simte atunci când rulează pe Mac și așa mai departe. Acest lucru explică dependența de platformă a aplicațiilor Abstract Window Toolkit.
Datorită dependenței sale de platformă și a unui fel de natură grea a componentelor sale, în zilele noastre este rar folosit în aplicațiile Java. În plus, există și cadre mai noi, cum ar fi Swing, care sunt ușoare și independente de platformă.
Swing are componente mai flexibile și mai puternice în comparație cu AWT. Swing oferă componente similare cu Abstract Window Toolkit și are, de asemenea, componente mai avansate, cum ar fi copacii, panourile cu file etc.
Dar un lucru de remarcat aici este că Cadrul Java Swing se bazează pe AWT. Cu alte cuvinte, Swing este un API îmbunătățit și extinde cadrul Abstract Window Toolkit. Așadar, înainte de a intra în tutorialele Swing, să vedem o prezentare generală a acestui cadru
Ierarhia și componentele AWT
Acum să vedem cum arată ierarhia Abstract Window Toolkit din Java.
Mai jos este prezentată diagrama ierarhiei AWT în Java.

După cum se arată în figura de mai sus, componenta rădăcină AWT „Componentă” se extinde din clasa „Obiect”. Clasa de componente este părintele celorlalte componente, inclusiv Etichetă, Buton, Listă, Casetă de selectare, Alegere, Container etc.
Un container este împărțit în continuare în panouri și ferestre. O clasă Applet derivă din Panel în timp ce Frame și Dialog derivă din componenta Window.
Acum, să discutăm pe scurt aceste componente.
Clasa componentelor
Clasa Component este rădăcina ierarhiei. O componentă este o clasă abstractă și este responsabilă pentru fundalul actual și culorile din prim plan, precum și pentru fontul textului curent.
Clasa de componente încapsulează proprietățile și atributele componentei vizuale.
Recipient
Componentele Container AWT pot conține alte componente, cum ar fi text, etichete, butoane, tabele, liste etc. Containerul păstrează o filă pentru alte componente care sunt adăugate la GUI.
Panou
Panoul este o subclasă a clasei Container. Un panou este o clasă concretă și nu conține titlul, chenarul sau bara de meniu. Este un container pentru a ține celelalte componente. Pot fi mai multe panouri într-un cadru.
Clasa Window
Clasa Windows este o fereastră la nivelul superior și putem folosi cadre sau dialoguri pentru a crea o fereastră. O fereastră nu are chenare sau bare de meniu.
Cadru
Cadrul derivă din clasa Window și poate fi redimensionat. Un cadru poate conține diferite componente, cum ar fi butonul, etichetele, câmpurile, bara de titlu, etc. Cadrul este utilizat în majoritatea aplicațiilor Abstract Window Toolkit.
b + copac vs b copac
Un cadru poate fi creat în două moduri:
# 1) Prin utilizarea obiectului clasei Frame
Aici, creăm un obiect de clasă Frame instanțând clasa Frame.
Un exemplu de programare este dat mai jos.
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 (); } } Ieșire:

# 2) Prin extinderea clasei Frame
Aici creăm o clasă care extinde clasa Frame și apoi creăm componente ale cadrului în constructorul său.
Acest lucru este prezentat în programul de mai jos.
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 (); } } Ieșire:

Clasa de culoare AWT
Ieșirea AWT pe care am arătat-o mai sus avea culori implicite pentru fundal și prim-plan. Abstract Window Toolkit oferă o clasă de culoare care este utilizată pentru a crea și seta culoarea la componente. De asemenea, putem seta culorile la componente folosind un cadru prin intermediul proprietăților componentelor.
Clasa Culoare ne permite să facem același lucru programatic. În acest scop, clasa Color utilizează modelul de culoare RGBA (RGBA = ROȘU, VERZ, ALBASTRU, ALPHA) sau HSB (HSB = HUE, SATURATION, BRIComponents).
Nu vom intra în detaliile acestei clase, deoarece este dincolo de sfera acestui tutorial.
Următorul tabel listează diferitele metode furnizate de clasa Color.
| Constructor / Metode | Descriere |
|---|---|
| getBlue () | Returnează componenta de culoare albastră în intervalul 0-255. |
| mai luminos () | Creați o versiune mai strălucitoare a culorii curente. |
| createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Returnează un nou PaintContext. |
| mai inchis () | Creează o versiune mai închisă a culorii curente. |
| decodifica (String nm) | Returnează o culoare opacă specificată prin conversia șirului într-un număr întreg. |
| egal (obiect obiect) | Verifică dacă obiectul color dat este egal cu obiectul curent. |
| getAlpha () | Returnează valoarea alfa a culorii variind de la 0 la 255. |
| getColor (String nm) | Returnează o culoare din proprietățile sistemului. |
| getColor (String nm, Color v) | |
| getColor (String nm, int v) | |
| getColorComponents (ColorSpace cspace, float () compArray) | Returnează o matrice de tip float care conține componentele de culoare din ColorSpace specificat. |
| getColorComponents (float () compArray) | Returnează o matrice de tip float care conține componentele de culoare din ColorSpace al Color. |
| getColorSpace () | returnează ColorSpace al culorii curente. |
| getGreen () | Returnează componenta de culoare verde în intervalul 0-255 în spațiul sRGB implicit. |
| getRed () | Returnează componenta de culoare roșie în intervalul 0-255 în spațiul sRGB implicit. |
| getRGB () | Returnează valoarea RGB a culorii curente în sRGB ColorModel implicit. |
| getHSBColor (float h, float s, float b) | Creează un obiect Color utilizând modelul de culoare HSB cu valorile specificate. |
| getTransparency () | returnează valoarea transparenței pentru această culoare. |
| hashCode () | Returnează codul hash pentru această culoare. |
| HSBtoRGB (float h, float s, float b) | Convertiți HSB-ul dat într-o valoare RGB |
| RGBtoHSB (int r, int g, int b, float () hsbvals) | convertește valorile RGB date în valori HSB. |
Punct AWT în Java
Clasa Point este utilizată pentru a indica o locație. Locația provine dintr-un sistem de coordonate bidimensional.
| Metode | Descriere |
|---|---|
| toString () | Returnează reprezentarea șirului punctului. |
| egal (Obiect) | Verificați dacă două puncte sunt egale. |
| getLocation () | Întoarceți locația punctului curent. |
| hashCode () | Returnează codul hash pentru punctul curent. |
| muta (int, int) | Mută punctul dat la locația dată în sistemul de coordonate (x, y). |
| setLocation (int, int) | Schimbă locația punctului la locația specificată. |
| setLocation (Punct) | Setează locația punctului la locația dată. |
| traduce (int, int) | Traduceți punctul curent în punct la x + dx, y + dy. |
Clasa de grafică AWT
Toate contextele grafice din Abstract Window Toolkit pentru a desena componente într-o aplicație derivă din clasa Graphics. Un obiect de clasă Graphics conține informațiile de stare necesare pentru a reda operațiile.
Informațiile de stare conțin de obicei:
- Ce componentă trebuie trasată?
- Redarea și decuparea coordonatelor.
- Culoarea, fontul și clipul curent.
- Operația curentă pe pixelul logic.
- Culoarea XOR actuală
Declarația generală a clasei Grafică este următoarea:
public abstract class Graphics extends Object Mod AWT Headless și Headlessexception
Când avem cerința că ar trebui să lucrăm cu aplicația bazată pe grafică, dar fără o tastatură, un mouse sau chiar un afișaj propriu-zis, atunci se numește un mediu „fără cap”.
JVM ar trebui să fie conștient de un astfel de mediu fără cap. De asemenea, putem seta mediul fără cap folosind Abstract Window Toolkit.
Există anumite modalități de a face acest lucru, după cum se arată mai jos:
# 1) Setați proprietatea sistemului „java.awt.headless” la true folosind codul de programare.
#Două) Utilizați linia de comandă pentru a seta următoarea proprietate a modului fără cap la adevărată:
java -Djava.awt.headless = true
# 3) Adăugați „-Djava.awt.headless = true” la variabila de mediu numită „JAVA_OPTS” utilizând un script de pornire a serverului.
Când mediul este fără cap și avem un cod care depinde de afișaj, tastatură sau mouse și când acest cod este executat într-un mediu fără cap, atunci se ridică excepția „HeadlessException”.
Declarația generală a HeadlessException este dată mai jos:
public class HeadlessException extends UnsupportedOperationException Mergem pentru modul fără cap în aplicațiile care necesită, de exemplu, conectarea la imagine. De exemplu, dacă vrem să schimbăm imaginea cu fiecare autentificare sau de fiecare dată când pagina este actualizată, atunci în astfel de cazuri, vom încărca imaginea și nu avem nevoie de tastatură, mouse etc.
Java AWT Vs Swing
Să vedem acum câteva dintre diferențele dintre Java AWT și Swing.
| AWT | Leagăn |
|---|---|
| AWT funcționează cu 21 de peeri sau widget-uri ale sistemului de operare care corespund fiecărei componente. | Swing funcționează cu un singur peer care este Window Object. Toate celelalte componente sunt trasate de Swing în interiorul obiectului Window. |
| AWT înseamnă „Abstract Windows Toolkit”. | Swing este derivat din Java Foundation Classes (JFC). |
| Componentele AWT sunt grele, deoarece AWT efectuează direct apeluri de subrutină către subrutine ale sistemului de operare. | Componentele oscilante sunt scrise deasupra AWT și, ca atare, componentele sunt ușoare. |
| Componentele AWT fac parte din pachetul java.awt. | Componentele oscilante fac parte din pachetul javax.swing. |
| AWT este dependent de platformă. | Componentele swing sunt scrise în Java și sunt independente de platformă. |
| AWT nu are aspectul său. Adaptează aspectul platformei pe care rulează. | Swing oferă un aspect diferit. |
| AWT are doar funcții de bază și nu acceptă funcții avansate precum tabelul, panoul cu file etc. | Swing oferă funcții avansate precum panoul JTabbed, JTable etc. |
| AWT este la fel de bun ca un strat subțire de clase așezat deasupra sistemului de operare, ceea ce îl face dependent de platformă. | Swing este mai mare și conține, de asemenea, funcționalități bogate. |
| AWT ne face să scriem o mulțime de lucruri. | Swing are cele mai multe caracteristici încorporate. |
întrebări frecvente
Q # 1) Ce este AWT în Java?
Răspuns: AWT în Java, cunoscut și sub numele de „Abstract Window Toolkit”, care este un cadru de interfață grafică de utilizator dependent de platformă care precede cadrul Swing. Este o parte a API-ului Java standard GUI, Java Foundation Classes sau JFC.
Q # 2) Java AWT este încă utilizat?
Răspuns: Este aproape învechit în Java, cu excepția câtorva componente care sunt încă utilizate. De asemenea, există încă câteva aplicații sau programe vechi care rulează pe platforme mai vechi care utilizează AWT.
Q # 3) Ce este AWT și Swing în Java?
Răspuns: Trusa de instrumente Abstract Window este un API dependent de platformă pentru a dezvolta aplicații GUI în Java. Swing, pe de altă parte, este un API pentru dezvoltarea GUI și este derivat din Java Foundation Classes (JFC). Componentele AWT sunt grele, în timp ce componentele Swing sunt ușoare.
software de descărcare video de pe orice site
Q # 4) Care este cadrul în Java AWT?
Răspuns: Un cadru poate fi definit ca fereastra componentă de nivel superior care are un titlu și un chenar. Cadrul are ca aspect implicit „Aspectul chenarului”. Cadrele generează, de asemenea, evenimente Windows, cum ar fi Închidere, Deschis, Închidere, Activare, Dezactivare etc.
Q # 5) Ce este importul Java AWT?
Răspuns: Import Java AWT (import java.awt. *) Indică faptul că avem nevoie de funcționalitatea API AWT în programul nostru, astfel încât să putem utiliza componentele sale, cum ar fi TextFields, Buttons, Labels, List etc.
Concluzie
În acest tutorial, am discutat despre prezentarea generală a Abstract Window Toolkit, ca API dependent de platformă pentru dezvoltarea GUI în Java. Este aproape învechit în Java și este înlocuit cu celelalte API-uri, cum ar fi Swings și JavaFX.
Nu am intrat în detaliile tuturor componentelor Abstract Window Toolkit, deoarece acestea sunt rareori utilizate acum. Prin urmare, am discutat doar despre componente precum Rame, Culoare etc. și modul fără cap care este setat folosind AWT.
În următorul tutorial, vom începe cu tutoriale Java Swing și le vom discuta în detaliu, deoarece majoritatea aplicațiilor Java folosesc astăzi Swing pentru dezvoltarea GUI.
=> Urmăriți aici seria de antrenament Java simplă.
Lectură recomandată
- Interfață Java și tutorial de clasă abstractă cu exemple
- Noțiuni de bază Java: Sintaxă Java, Java Class și Core Java Concepts
- Java Integer și Java BigInteger Class cu exemple
- Tipuri de clase în Java: abstract, concret, final, static
- Implementarea Java: crearea și executarea fișierului Java JAR
- Tutorial de clasă Java Scanner cu exemple
- Constructori private, abstracte, matrice și șiruri în Java
- Obiectul Java Class Vs - Cum se utilizează clasa și obiectul în Java