Hva er forskjellen mellom AWT og Swing i Java

De hovedforskjell mellom AWT og Swing i Java er at AWT er Javas originale plattformavhengige vinduer, grafikk og brukergrensesnitt widget verktøykasse mens Swing er en GUI widget verktøykasse for Java som er en forlengelse av AWT.  

Java er et programmeringsspråsmål på høyt nivå, som støtter objektorientert programmering, multithreading, plattform-uavhengighet og mange andre funksjoner. Programmereren kan skrive en rekke applikasjoner, inkludert skrivebord, web, mobil, bildebehandling, etc. ved hjelp av Java-språk. Det gir verktøy for å bygge rike grafiske brukergrensesnitt (GUI). AWT og Swing er to av dem.

Nøkkelområder dekket

1. Hva er GUI
     - Definisjon, funksjonalitet
2. Hva er AWT
     - Definisjon, funksjonalitet
3. Hva er Swing
     - Definisjon, funksjonalitet
4. Hva er forskjellen mellom AWT og Swing i Java
     - Sammenligning av nøkkelforskjeller

Nøkkelord

AWT, GUI, Java, Swing

Hva er en GUI

GUI står for Grafisk brukergrensesnitt. Det er et grensesnitt som tillater brukerne å drive et program og utføre de nødvendige oppgavene. Dessuten består en GUI av ulike komponenter. Vindu, knapper, radioknapper, avmerkingsbokser, etiketter, rullegardinlister, tekstfelt, kombinasjonsbokser er noen GUI-komponenter. Disse komponentene kan utløse hendelser. For eksempel åpnes en ny side etter at du har klikket på en knapp, eller brukeren kan legge inn registreringsdetaljer og trykke på send-knappen. De fleste applikasjoner har en GUI for å tillate brukeren å kommunisere med applikasjonen.

Hva er AWT

AWT står for Abstract Window Toolkit. Det er en API for å utvikle GUI- eller Windows-baserte applikasjoner i Java. Det krever et opprinnelig OS-objekt for å implementere funksjonalitetene. AWT-komponenter er også tungvektige og krever mer minneplass. Videre tar de litt tid å utføre. Videre må programmøren importere javax.awt-pakken for å utvikle en AWT-basert GUI. Knapp, rullefelt, tekstfelt, lister, dialoger og paneler er noen AWT-komponenter. Etter å ha opprettet objekter plasseres de i en beholder. Det gir også den nødvendige plassen for komponentene å laste. Vanligvis kan AWT-applikasjon i ett OS se annerledes ut i et annet OS.

Hva er Swing

Swing er en GUI widget verktøykasse for Java. Den er bygget på toppen av AWT API. Det er også en del av Oracle's Java Foundation Classes (JFC). Videre gir Swing grunnleggende komponenter som etiketter, tekstbokser, knapper, etc., samt avanserte komponenter som tabbedruter, bord og trær. Derfor gir Swing mer avanserte komponenter enn AWT. Her må programmøren importere javax.swing-pakken for å skrive en Swing-applikasjon. Denne pakken inneholder en rekke klasser som JButton, JTable, JList, JTextArea og, JCheckBox.

Figur 1: Enkel Java Swing-applikasjon

Swing er plattformuavhengig og komponentene er lette. Videre krever komponentene minimum minneplass. Derfor utfører Swing-applikasjoner mye raskere. Et vanlig mønster i utvikling er modell, visning, kontroller (MVC) mønster. Swing følger dette mønsteret. Det hjelper å opprettholde koden enkelt.  

Forskjellen mellom AWT og Swing

Definisjon

AWT er en samling av GUI-komponenter (widgets) og andre relaterte tjenester som kreves for GUI programmering i Java. Swing er en del av Java Foundation Classes (JFC) som brukes til å lage Java-baserte GUI-applikasjoner for grensesnitt. Derfor forklarer dette hovedforskjellen mellom AWT og Swing i Java.

Type

AWT-komponenter er tungvektige, mens Swing-komponenter er lette.

Plattformavhengighet

En annen stor forskjell mellom AWT og Swing i Java er at AWT er plattformavhengig, mens Swing er plattform uavhengig.

Vise

Videre støtter AWT ikke et pluggbart utseende. Swing støtter en pluggbar utseende. Dette er også en viktig forskjell mellom AWT og Swing i Java.

komponenter

Også, Swing har mer avanserte komponenter enn AWT.

Hastighet

Videre er utførelsen av AWT langsommere. Imidlertid utfører Swing raskere.

MVC

AWT støtter ikke MVC-mønster mens Swing støtter MVC-mønster. Dette er en annen forskjell mellom AWT og Swing.

Minneplass

Videre krever AWT-komponenter mer minne, mens Swing-komponenter ikke krever mye minneplass.

Pakke

Programmereren må importere javax.awt-pakken for å utvikle en AWT-basert GUI. Imidlertid må programmøren importere javax.swing-pakken for å skrive en Swing-applikasjon.

Konklusjon

Kort sagt, AWT og Swing er to verktøy for å bygge rike grafiske brukergrensesnitt (GUI). Hovedforskjellen mellom AWT og Swing i Java er at AWT er Javas originale plattformavhengige vinduer, grafikk og brukergrensesnitt widget verktøykasse mens Swing er en GUI widget verktøykasse for Java som er en forlengelse av AWT. 

Henvisning:

1. "AWT Oversikt." Www.tutorialspoint.com, Tilgjengelig her.
2. "SWING Oversikt." Www.tutorialspoint.com, Tilgjengelig her.
3. "Swing (Java)." Wikipedia, Wikimedia Foundation, 9. juni 2018, Tilgjengelig her.
4. "Abstract Window Toolkit." Wikipedia, Wikimedia Foundation, 26. august 2018, Tilgjengelig her.

Bilde Courtesy:

1. "Java Swings Wikipedia, Event Handling, eksempel 1 skjermbilde" Av Samwilson - Eget arbeid (CC BY-SA 3.0) via Commons Wikimedia