what is java awt
Denne Java AWT-opplæringen forklarer hva som er Abstract Window Toolkit i Java og relaterte konsepter som AWT Color, Point, Graphics, AWT vs Swing, etc:
Vi ble introdusert for de grunnleggende GUI-vilkårene i en av våre tidligere opplæringsprogrammer. I denne opplæringen vil vi diskutere et av de eldste GUI-rammene i Java kalt “AWT Framework”. AWT er kortform for “Abstract Window Toolkit”.
AWT er et API for å lage GUI-applikasjoner i Java. Det er et plattformavhengig rammeverk, dvs. GUI-komponentene som tilhører AWT er ikke de samme på alle plattformer. I henhold til plattformens innfødte utseende, endres utseendet og følelsen av AWT-komponentene også.
=> Sjekk ALLE Java-opplæringsprogrammer her.
Hva du vil lære:
JAVA AWT (abstrakt vindusverktøy)
Java AWT oppretter komponenter ved å ringe underrutinene til innfødte plattformer. Derfor vil et AWT GUI-program ha utseendet og følelsen av Windows OS mens du kjører på Windows, og Mac OS ser ut og føles når du kjører på Mac og så videre. Dette forklarer plattformavhengigheten til Abstract Window Toolkit-applikasjoner.
På grunn av plattformavhengighet og en slags tungvekt av komponentene, brukes den sjelden i Java-applikasjoner i disse dager. Dessuten er det også nyere rammer som Swing som er lette og plattformuavhengige.
Swing har mer fleksible og kraftige komponenter sammenlignet med AWT. Swing tilbyr komponenter som ligner på Abstract Window Toolkit og har også mer avanserte komponenter som trær, paneler med paneler, etc.
Men en ting å merke seg her er at Java Swing rammeverk er basert på AWT. Med andre ord er Swing et forbedret API, og det utvider rammeverket for abstrakt vindusverktøy. Så før vi hopper inn i Swing-opplæringsprogrammer, la oss få en oversikt over dette rammeverket.
AWT-hierarki og komponenter
La oss nå se hvordan Abstrakt Window Toolkit-hierarkiet i Java ser ut.
Nedenfor er diagrammet over AWT-hierarkiet i Java.
Som vist i figuren ovenfor strekker roten AWT-komponenten 'Component' seg fra 'Object' -klassen. Komponentklassen er overordnet til de andre komponentene, inkludert etikett, knapp, liste, avkrysningsrute, valg, beholder osv.
En container er videre delt inn i paneler og vinduer. En appletklasse kommer fra Panel mens Frame og Dialog kommer fra Window-komponenten.
La oss nå diskutere disse komponentene kort.
Komponentklasse
Komponentklassen er roten til hierarkiet. En komponent er en abstrakt klasse og er ansvarlig for den nåværende bakgrunns- og forgrunnsfargene samt den gjeldende tekstfonten.
Komponentklassen innkapsler de visuelle komponentegenskapene og attributtene.
Container
Container AWT-komponenter kan inneholde andre komponenter som tekst, etiketter, knapper, tabeller, lister osv. Beholderen holder en fane på andre komponenter som legges til GUI.
Panel
Panelet er en underklasse av Container-klassen. Et panel er en konkret klasse og inneholder ikke tittelen, rammen eller menylinjen. Det er en beholder for å holde de andre komponentene. Det kan være mer enn ett panel i en ramme.
Vindusklasse
Windows-klasse er et vindu på øverste nivå, og vi kan bruke rammer eller dialoger til å lage et vindu. Et vindu har ikke rammer eller menylinjer.
Ramme
Rammen kommer fra Window-klassen og kan endres. En ramme kan inneholde forskjellige komponenter som knapp, etiketter, felt, tittellinje, osv. Rammen brukes i de fleste av applikasjonene i Abstract Window Toolkit.
dobbeltkoblet liste c ++ eksempel
En ramme kan opprettes på to måter:
# 1) Ved å bruke Frame-klasseobjektet
Her oppretter vi et Frame-klasseobjekt ved å instantiere Frame-klassen.
Et programmeringseksempel er gitt 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 (); } }
Produksjon:
# 2) Ved å utvide rammeklassen
Her oppretter vi en klasse som utvider rammeklassen og lager komponenter i rammen i konstruktøren.
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 (); } }
Produksjon:
AWT fargeklasse
AWT-utgangen som vi har vist ovenfor hadde standardfarger for bakgrunn og forgrunn. Abstract Window Toolkit gir en fargeklasse som brukes til å lage og sette fargen til komponenter. Vi kan også sette fargene til komponenter ved hjelp av et rammeverk via komponentegenskaper.
Color-klassen lar oss gjøre det samme programmatisk. For dette formålet bruker Color-klassen RGBA-fargemodellen (RGBA = RED, GREEN, BLUE, ALPHA) eller HSB (HSB = HUE, SATURATION, BRIComponents).
Vi vil ikke gå nærmere inn på detaljene i denne klassen, da det ligger utenfor omfanget av denne opplæringen.
Tabellen nedenfor viser de forskjellige metodene som tilbys av Color-klassen.
Konstruktør / Metoder | Beskrivelse |
---|---|
getBlue () | Returnerer blå fargekomponent i området 0-255. |
lysere () | Lag en lysere versjon av gjeldende farge. |
createContext (ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform x, RenderingHints h) | Returnerer en ny PaintContext. |
mørkere () | Oppretter en mørkere versjon av gjeldende farge. |
dekode (streng nm) | Returnerer en spesifisert ugjennomsiktig farge ved å konvertere strengen til et helt tall. |
er lik (Objekt obj) | Sjekker om det gitte fargeobjektet er lik det gjeldende objektet. |
getAlpha () | Returnerer alfaverdien for farger fra 0-255. |
getColor (streng nm) | Returnerer en farge fra systemegenskapene. |
getColor (streng nm, farge v) | |
getColor (streng nm, int v) | |
getColorComponents (ColorSpace cspace, float [] compArray) | Returnerer et utvalg av typefloat som inneholder fargekomponentene fra det angitte ColorSpace. |
getColorComponents (float [] compArray) | Returnerer en rekke typefloat som inneholder fargekomponentene fra ColorSpace av Color. |
getColorSpace () | returnerer ColorSpace for gjeldende Color. |
getGreen () | Returnerer grønn fargekomponent i området 0-255 i standard sRGB-plass. |
getRed () | Returnerer rød fargekomponent i området 0-255 i standard sRGB-plass. |
getRGB () | Returnerer RGB-verdien til gjeldende farge i standard sRGB ColorModel. |
getHSBColor (float h, float s, float b) | Oppretter et fargeobjekt ved hjelp av HSB-fargemodellen med spesifiserte verdier. |
getTransparency () | returnerer gjennomsiktighetsverdien for denne fargen. |
hashCode () | Returnerer hash-kode for denne fargen. |
HSBtoRGB (float h, float s, float b) | Konverter den gitte HSB til en RGB-verdi |
RGBtoHSB (int r, int g, int b, float [] hsbvals) | konverterer gitte RGB-verdier til HSB-verdier. |
AWT-punkt i Java
Punktklassen brukes til å indikere en plassering. Plasseringen er fra et todimensjonalt koordinatsystem.
Metoder | Beskrivelse |
---|---|
toString () | Returner strengrepresentasjonen av punktet. |
er lik (Objekt) | Sjekk om to poeng er like. |
getLocation () | Returner plasseringen til det nåværende punktet. |
hashCode () | Returnerer hashkoden for gjeldende punkt. |
flytte (int, int) | Flytter det gitte punktet til det gitte stedet i (x, y) koordinatsystemet. |
setLocation (int, int) | Endrer punktstedet til det angitte stedet. |
setLocation (Point) | Angir plasseringen av punktet til den gitte plasseringen. |
oversette (int, int) | Oversett gjeldende punkt til punkt ved x + dx, y + dy. |
AWT-grafikklasse
Alle grafiske sammenhenger i Abstract Window Toolkit for å tegne komponenter i en applikasjon kommer fra grafikklassen. Et grafikk klasseobjekt inneholder tilstandsinformasjonen som trengs for å gjengi operasjoner.
Statens informasjon inneholder vanligvis:
- Hvilken komponent skal tegnes?
- Gjengivelse og klipping av koordinater.
- Gjeldende farge, skrift og klipp.
- Den gjeldende operasjonen på den logiske pikselet.
- Gjeldende XOR-farge
Den generelle erklæringen til grafikklassen er som følger:
public abstract class Graphics extends Object
AWT hodeløs modus og hodeløs unntak
Når vi har et krav om at vi skal arbeide med det grafikkbaserte programmet, men uten et egentlig tastatur, mus eller til og med skjerm, kalles det et 'hodeløst' miljø.
JVM bør være klar over et slikt hodeløst miljø. Vi kan også angi hodeløst miljø ved hjelp av Abstract Window Toolkit.
c ++ hvordan lage en makefile
Det er visse måter å gjøre dette på, som vist nedenfor:
#1) Sett systemegenskapen 'java.awt.headless' til true ved hjelp av programmeringskoden.
#to) Bruk kommandolinjen til å sette følgende hodeløse modusegenskap til sann:
java -Djava.awt.headless = sant
# 3) Legg til '-Djava.awt.headless = true' i miljøvariabelen med navnet 'JAVA_OPTS' ved hjelp av et serveroppstartsskript.
Når miljøet er hodeløst og vi har en kode som er avhengig av skjerm, tastatur eller mus, og når denne koden utføres i et hodeløst miljø, heves unntaket “HeadlessException”.
Den generelle erklæringen om HeadlessException er gitt nedenfor:
public class HeadlessException extends UnsupportedOperationException
Vi går for hodeløs modus i applikasjoner som for eksempel krever bildebasert innlogging. For eksempel, hvis vi vil endre bildet med hver pålogging eller hver gang siden oppdateres, vil vi i slike tilfeller laste inn bildet og vi trenger ikke tastatur, mus, etc.
Java AWT Vs Swing
La oss nå se på noen av forskjellene mellom Java AWT og Swing.
AWT | Svinge |
---|---|
AWT fungerer med 21 kolleger eller widgets i operativsystemet som tilsvarer hver komponent. | Swing fungerer med bare en jevnaldrende som er Window Object. Alle andre komponenter er tegnet av Swing inne i Window-objektet. |
AWT står for “Abstract Windows Toolkit”. | Swing er hentet fra Java Foundation Classes (JFC). |
AWT-komponenter er tunge, siden AWT direkte ringer til subrutiner til operativsystemet. | Svingkomponenter er skrevet på toppen av AWT, og som sådan er komponentene lette. |
AWT-komponenter er en del av java.awt-pakken. | Svingkomponenter er en del av javax.swing-pakken. |
AWT er plattformavhengig. | Svingkomponenter er skrevet på Java og er plattformuavhengige. |
AWT har ikke sitt utseende. Den tilpasser utseendet på plattformen den kjører på. | Swing gir et annet utseende og preg. |
AWT har bare grunnleggende funksjoner og støtter ikke avanserte funksjoner som tabellen, fanepanelet, etc. | Swing gir avanserte funksjoner som JTabbed-panel, JTable, etc. |
AWT er like bra som et tynt lag med klasser som sitter på toppen av operativsystemet, noe som gjør det plattformavhengig. | Sving er større og inneholder også rik funksjonalitet. |
AWT får oss til å skrive mange ting. | Swing har de fleste funksjonene innebygd. |
ofte stilte spørsmål
Q # 1) Hva er AWT i Java?
Svar: AWT i Java også kjent som “Abstract Window Toolkit” som er et plattformavhengig grafisk rammeverk for brukergrensesnitt som går foran Swing-rammeverket. Det er en del av Java-standard GUI API, Java Foundation Classes eller JFC.
Q # 2) Brukes Java AWT fortsatt?
Svar: Det er nesten foreldet i Java som sperrer noen få komponenter som fortsatt brukes. Det er fortsatt noen gamle applikasjoner eller programmer som kjører på eldre plattformer som bruker AWT.
Q # 3) Hva er AWT og Swing i Java?
Svar: Abstract Window-verktøykasse er et plattformavhengig API for å utvikle GUI-applikasjoner i Java. En sving derimot er et API for GUI-utvikling og er avledet fra Java Foundation Classes (JFC). AWT-komponenter er tunge, mens svingkomponenter er lette.
Q # 4) Hva er rammen i Java AWT?
Svar: En ramme kan defineres som komponentvinduet på øverste nivå som har en tittel og en kant. Rammen har 'Border layout' som standardoppsett. Rammer genererer også Windows-hendelser som Lukk, Åpnet, Lukking, Aktiver, Deaktivert, etc.
Q # 5) Hva er import av Java AWT?
Svar: Importer Java AWT (import java.awt. *) Indikerer at vi trenger funksjonaliteten til AWT API i programmet vårt slik at vi kan bruke komponentene som TextFields, Buttons, Labels, List, etc.
Konklusjon
I denne veiledningen diskuterte vi oversikten over Abstract Window Toolkit, som en plattformavhengig API for GUI-utvikling i Java. Det er nesten foreldet i Java og blir erstattet av andre APIer som Swings og JavaFX.
Vi har ikke gått inn i detaljene til alle komponentene i Abstract Window Toolkit siden de sjelden brukes nå. Derfor diskuterte vi bare komponenter som rammer, farger osv. Og den hodeløse modusen som er satt med AWT.
I neste opplæring vil vi starte med Java Swing-opplæringsprogrammer, og vi vil diskutere dem i detalj, ettersom de fleste Java-applikasjoner i dag bruker Swing for GUI-utvikling.
=> Se opp den enkle Java-treningsserien her.
Anbefalt lesing
- Java-grensesnitt og abstrakt klasseopplæring med eksempler
- Java Basics: Java Syntax, Java Class og Core Java Concepts
- Java Integer og Java BigInteger Class med eksempler
- Typer klasser i Java: Abstrakt, Betong, Endelig, Statisk
- Java-distribusjon: Opprettelse og utføring av Java JAR-fil
- Java-skannerklasseopplæring med eksempler
- Private, abstrakte, array- og strengkonstruktører i Java
- Java Class Vs Object - Hvordan bruke klasse og objekt i Java