what is java awt
Denne Java AWT-tutorial forklarer, hvad der er Abstract Window Toolkit i Java og relaterede begreber som AWT Color, Point, Graphics, AWT vs Swing osv.
Vi blev introduceret til de grundlæggende GUI-vilkår i en af vores tidligere tutorials. I denne vejledning vil vi diskutere en af de ældste GUI-rammer i Java kaldet “AWT Framework”. AWT er kortformularen til “Abstract Window Toolkit”.
AWT er en API til oprettelse af GUI-applikationer i Java. Det er en platformafhængig ramme, dvs. GUI-komponenterne, der tilhører AWT, er ikke de samme på alle platforme. I henhold til platformens oprindelige udseende og fornemmelse ændres udseendet og følelsen af AWT-komponenterne også.
=> Tjek ALLE Java-tutorials her.
Hvad du lærer:
JAVA AWT (abstrakt vinduesværktøjssæt)
Java AWT opretter komponenter ved at kalde subrutinerne til native platforme. Derfor vil et AWT GUI-program se ud og føle på Windows OS, mens det kører på Windows, og Mac OS ser ud, når det kører på Mac og så videre. Dette forklarer platformens afhængighed af Abstract Window Toolkit-applikationer.
På grund af dets platformafhængighed og en slags tungvægt af komponenterne bruges den sjældent i Java-applikationer i disse dage. Derudover er der også nyere rammer som Swing, som er lette og platformuafhængige.
Swing har mere fleksible og kraftfulde komponenter sammenlignet med AWT. Swing leverer komponenter svarende til Abstract Window Toolkit og har også mere avancerede komponenter som træer, paneler med faner osv.
Men en ting at bemærke her er, at Java Swing-ramme er baseret på AWT. Med andre ord er Swing en forbedret API, og den udvider rammen om Abstract Window Toolkit. Så før vi hopper ind i Swing-tutorials, lad os få et overblik over denne ramme.
AWT-hierarki og komponenter
Lad os nu se, hvordan det abstrakte Window Toolkit-hierarki i Java ser ud.
Nedenfor er diagrammet over AWT-hierarkiet i Java.
Som vist i ovenstående figur strækker AWT-komponenten 'Komponent' sig fra klassen 'Objekt'. Komponentklassen er overordnet til de andre komponenter, herunder etiket, knap, liste, afkrydsningsfelt, valg, beholder osv.
En container er yderligere opdelt i paneler og vinduer. En appletklasse stammer fra Panel, mens Frame og Dialog stammer fra Window-komponenten.
Lad os nu kort diskutere disse komponenter.
Komponent klasse
Komponentklassen er roden til hierarkiet. En komponent er en abstrakt klasse og er ansvarlig for den aktuelle baggrunds- og forgrundsfarver samt den aktuelle tekstskrifttype.
Komponentklassen indkapsler de visuelle komponentegenskaber og attributter.
Beholder
Container-AWT-komponenter kan indeholde andre komponenter som tekst, etiketter, knapper, tabeller, lister osv. Containeren holder en fane på andre komponenter, der føjes til GUI.
Panel
Panelet er en underklasse af Container-klassen. Et panel er en konkret klasse og indeholder ikke titlen, rammen eller menulinjen. Det er en beholder til at rumme de andre komponenter. Der kan være mere end et panel i en ramme.
Vinduesklasse
Windows-klasse er et vindue på øverste niveau, og vi kan bruge rammer eller dialoger til at oprette et vindue. Et vindue har ikke rammer eller menulinjer.
Ramme
Ramme stammer fra Window-klassen og kan ændres. En ramme kan indeholde forskellige komponenter som knap, etiketter, felter, titellinje osv. Rammen bruges i de fleste af applikationerne til Abstract Window Toolkit.
desktop support interview spørgsmål og svar pdf
En ramme kan oprettes på to måder:
# 1) Ved at bruge ramme klasse objektet
Her opretter vi et Frame-klasseobjekt ved at instantiere Frame-klassen.
Et eksempel på programmering er angivet nedenfor.
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 (); } }
Produktion:
# 2) Ved at udvide rammeklassen
Her opretter vi en klasse, der udvider rammeklassen, og opretter derefter komponenter af rammen i dens konstruktør.
Dette vises i programmet nedenfor.
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 (); } }
Produktion:
AWT-fareklasse
AWT-output, som vi har vist ovenfor, havde standardfarver til baggrund og forgrund. Abstract Window Toolkit giver en farveklasse, der bruges til at oprette og indstille farven til komponenter. Vi kan også indstille farverne til komponenter ved hjælp af en ramme via komponentegenskaber.
Farveklassen giver os mulighed for det samme programmatisk. Til dette formål anvender Color-klassen RGBA-farvemodellen (RGBA = RØD, GRØN, BLÅ, ALPHA) eller HSB (HSB = HUE, SATURATION, BRIC-komponenter).
Vi vil ikke gå ind på detaljerne i denne klasse, da det ligger uden for omfanget af denne vejledning.
Følgende tabel viser de forskellige metoder, der leveres af Color-klassen.
Konstruktør / Metoder | Beskrivelse |
---|---|
getBlue () | Returnerer blå farvekomponent i området 0-255. |
lysere () | Opret en lysere version af den aktuelle farve. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Returnerer en ny PaintContext. |
mørkere () | Opretter en mørkere version af den aktuelle farve. |
afkode (streng nm) | Returnerer en specificeret uigennemsigtig farve ved at konvertere strengen til et heltal. |
er lig med (Objekt obj) | Kontrollerer, om det givne farveobjekt er lig med det aktuelle objekt. |
getAlpha () | Returnerer alfaværdien for farve fra 0-255. |
getColor (streng nm) | Returnerer en farve fra systemegenskaberne. |
getColor (streng nm, farve v) | |
getColor (String nm, int v) | |
getColorComponents (ColorSpace cspace, float () compArray) | Returnerer en matrix af typen float, der indeholder farvekomponenterne fra det angivne ColorSpace. |
getColorComponents (float () compArray) | Returnerer en matrix af typen float, der indeholder farvekomponenterne fra ColorSpace af Color. |
getColorSpace () | returnerer ColorSpace for den aktuelle farve. |
getGreen () | Returnerer grøn farvekomponent i området 0-255 i standard sRGB-rummet. |
getRed () | Returnerer rød farvekomponent i området 0-255 i standard sRGB-rummet. |
getRGB () | Returnerer RGB-værdien for den aktuelle farve i standard sRGB ColorModel. |
getHSBColor (float h, float s, float b) | Opretter et farveobjekt ved hjælp af HSB-farvemodellen med angivne værdier. |
getTransparency () | returnerer gennemsigtighedsværdien for denne farve. |
hashCode () | Returnerer hash-kode for denne farve. |
HSBtoRGB (float h, float s, float b) | Konverter den givne HSB til en RGB-værdi |
RGBtoHSB (int r, int g, int b, float () hsbvals) | konverterer de givne RGB-værdier til HSB-værdier. |
AWT-punkt i Java
Punktklassen bruges til at indikere en placering. Placeringen er fra et todimensionalt koordinatsystem.
Metoder | Beskrivelse |
---|---|
toString () | Returner strengrepræsentationen af punktet. |
er lig med (Objekt) | Kontroller, om to point er ens. |
getLocation () | Returplacering for det aktuelle punkt. |
hashCode () | Returnerer hashkoden for det aktuelle punkt. |
flytte (int, int) | Flytter det givne punkt til det givne sted i (x, y) koordinatsystemet. |
setLocation (int, int) | Ændrer punktplaceringen til den angivne placering. |
setLocation (Punkt) | Indstiller punktets placering til den givne placering. |
oversætte (int, int) | Oversæt det aktuelle punkt til punkt ved x + dx, y + dy. |
AWT-grafikklasse
Alle grafiske sammenhænge i Abstract Window Toolkit til tegning af komponenter i en applikation stammer fra grafikklassen. Et grafikklasseobjekt indeholder de tilstandsoplysninger, der er nødvendige for at gengive operationer.
Statusoplysningerne indeholder typisk:
- Hvilken komponent skal tegnes?
- Gengivelse og klipning af koordinater.
- Den aktuelle farve, skrifttype og klip.
- Den aktuelle handling på den logiske pixel.
- Den aktuelle XOR-farve
Grafikklassens generelle erklæring er som følger:
gratis pop op-blokker til Google Chrome
public abstract class Graphics extends Object
AWT hovedløs tilstand og hovedløs undtagelse
Når vi har et krav om, at vi skal arbejde med den grafikbaserede applikation, men uden et egentligt tastatur, mus eller endda skærm, kaldes det et “hovedløst” miljø.
JVM skal være opmærksom på et sådant hovedløst miljø. Vi kan også indstille det hovedløse miljø ved hjælp af Abstract Window Toolkit.
Der er visse måder at gøre dette som vist nedenfor:
# 1) Indstil systemegenskaben 'java.awt.headless' til sand ved hjælp af programmeringskoden.
#to) Brug kommandolinjen til at indstille følgende egenskab uden hovedtilstand til sand:
java -Djava.awt.headless = sandt
# 3) Føj '-Djava.awt.headless = true' til miljøvariablen med navnet 'JAVA_OPTS' ved hjælp af et serverstart-script.
Når miljøet er hovedløst, og vi har en kode, der er afhængig af skærm, tastatur eller mus, og når denne kode udføres i et hovedløst miljø, hæves undtagelsen 'HeadlessException'.
Den generelle erklæring om HeadlessException er angivet nedenfor:
public class HeadlessException extends UnsupportedOperationException
Vi går til hovedløs tilstand i applikationer, der f.eks. Kræver billedbaseret billedlogin. For eksempel, hvis vi vil ændre billedet med hvert login eller hver gang siden opdateres, så vil vi i sådanne tilfælde indlæse billedet, og vi har ikke brug for tastatur, mus osv.
Java AWT vs Swing
Lad os nu se på nogle af forskellene mellem Java AWT og Swing.
AWT | Svinge |
---|---|
AWT fungerer med 21 peers eller widgets i operativsystemet, der svarer til hver komponent. | Swing fungerer kun med en peer, der er Window Object. Alle andre komponenter er tegnet ved at svinge inde i vinduet. |
AWT står for “Abstract Windows Toolkit”. | Swing er afledt af Java Foundation Classes (JFC). |
AWT-komponenter er tunge, da AWT foretager direkte rutineopkald til underrutiner i operativsystemet. | Svingkomponenter er skrevet oven på AWT, og som sådan er komponenterne lette. |
AWT-komponenter er en del af java.awt-pakken. | Svingkomponenter er en del af javax.swing-pakken. |
AWT er platformafhængig. | Swing-komponenter er skrevet i Java og er platformuafhængige. |
AWT har ikke sit udseende. Det tilpasser udseendet og følelsen af den platform, den kører på. | Swing giver et andet look og fornemmelse af sig selv. |
AWT har kun grundlæggende funktioner og understøtter ikke avancerede funktioner som bordet, fanebladet osv. | Swing giver avancerede funktioner som JTabbed-panel, JTable osv. |
AWT er lige så godt som et tyndt lag af klasser, der sidder oven på operativsystemet, hvilket gør det platformafhængigt. | Sving er større og indeholder også rig funktionalitet. |
AWT får os til at skrive mange ting. | Swing har de fleste af de indbyggede funktioner. |
Ofte stillede spørgsmål
Q # 1) Hvad er AWT i Java?
Svar: AWT i Java også kendt som “Abstract Window Toolkit”, som er en platformafhængig grafisk brugergrænsefladeramme, der går forud for Swing-rammen. Det er en del af Java-standard GUI API, Java Foundation Classes eller JFC.
Q # 2) Bruges Java AWT stadig?
Svar: Det er næsten forældet i Java, der spærrer nogle få komponenter, der stadig bruges. Der er også stadig nogle gamle applikationer eller programmer, der kører på ældre platforme, der bruger AWT.
Q # 3) Hvad er AWT og Swing i Java?
Svar: Abstract Window-værktøjssæt er en platformafhængig API til at udvikle GUI-applikationer i Java. En sving er derimod en API til GUI-udvikling og stammer fra Java Foundation Classes (JFC). AWT-komponenter er tunge, mens Swing-komponenter er lette.
Q # 4) Hvad er rammen i Java AWT?
Svar: En ramme kan defineres som komponentvinduet på øverste niveau, der har en titel og en kant. Rammen har 'Border layout' som standardlayout. Rammer genererer også Windows-begivenheder som Luk, Åbn, Luk, Aktivér, Deaktiveret osv.
Q # 5) Hvad er import af Java AWT?
Svar: Import af Java AWT (import java.awt. *) Indikerer, at vi har brug for funktionaliteten i AWT API i vores program, så vi kan bruge dets komponenter som TextFields, Buttons, Labels, List osv.
Konklusion
I denne vejledning diskuterede vi oversigten over Abstract Window Toolkit som en platformafhængig API til GUI-udvikling i Java. Det er næsten forældet i Java og erstattes af andre API'er som Swings og JavaFX.
Vi har ikke gået ind i detaljerne i alle komponenterne i Abstract Window Toolkit, da de sjældent bruges nu. Derfor diskuterede vi kun komponenter som rammer, farve osv. Og den hovedløse tilstand, der er indstillet ved hjælp af AWT.
I den næste tutorial begynder vi med Java Swing-tutorials, og vi diskuterer dem detaljeret, da de fleste Java-applikationer i dag bruger Swing til GUI-udvikling.
=> Pas på den enkle Java-træningsserie her.
Anbefalet læsning
- Java-interface og abstrakt klasseundervisning med eksempler
- Java Basics: Java Syntax, Java Class og Core Java Concepts
- Java-heltal og Java BigInteger-klasse med eksempler
- Typer af klasser i Java: Abstrakt, Beton, Endelig, Statisk
- Java-implementering: Oprettelse og udførelse af Java JAR-fil
- Java Scanner-klassevejledning med eksempler
- Private, abstrakte, matrix- og strengkonstruktører i Java
- Java Class Vs Object - Sådan bruges klasse og objekt i Java