Vad är skillnaden mellan AWT och Swing i Java

De huvudskillnad mellan AWT och Swing i Java är att AWT är Java: s ursprungliga plattformsberoende fönsterhantering, grafik och användargränssnitt widgetverktyg medan Swing är en GUI widget verktygslåda för Java som är en förlängning av AWT.  

Java är ett högkvalitativt programmeringsspråk med allmänt ändamål som stöder objektorienterad programmering, multithreading, plattformoberoende och många andra funktioner. Programmeraren kan skriva en mängd olika applikationer, inklusive skrivbord, webb, mobil, bildbehandling etc. med hjälp av Java-språk. Det tillhandahåller verktygsverktyg för att skapa rika grafiska användargränssnitt (GUI). AWT och Swing är två av dem.

Viktiga områden som omfattas

1. Vad är GUI
     - Definition, Funktionalitet
2. Vad är AWT
     - Definition, Funktionalitet
3. Vad är Swing
     - Definition, Funktionalitet
4. Vad är skillnaden mellan AWT och Swing i Java
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

AWT, GUI, Java, Swing

Vad är en GUI

GUI står för Grafiskt användargränssnitt. Det är ett gränssnitt som låter användarna driva en applikation och utföra de uppgifter som krävs. En GUI består också av olika komponenter. Fönster, knappar, radioknappar, kryssrutor, etiketter, rullgardinslistor, textfält, kombinationsfält är några GUI-komponenter. Dessa komponenter kan utlösa händelser. Till exempel öppnas en ny sida efter att ha klickat på en knapp, eller användaren kan ange registreringsinformationen och tryck på Skicka-knappen. De flesta applikationer har en GUI för att tillåta användaren att kommunicera med applikationen.

Vad är AWT

AWT står för Abstract Window Toolkit. Det är ett API för att utveckla GUI- eller Windows-baserade applikationer i Java. Det kräver ett inbyggt OS-objekt för att genomföra funktionaliteterna. AWT-komponenterna är också tunga och kräver mer minnesutrymme. Dessutom tar de lite tid att genomföra. Dessutom måste programmeraren importera javax.awt-paketet för att utveckla en AWT-baserad GUI. Knapp, rullningsfält, textfält, listor, dialoger och paneler är några AWT-komponenter. Efter att ha skapat föremål placeras de i en behållare. Det ger också det utrymme som krävs för att komponenterna ska laddas. Vanligtvis kan AWT-applikation i ett operativsystem se annorlunda ut i ett annat operativsystem.

Vad är Swing

Swing är en GUI widget verktygslåda för Java. Den är byggd ovanpå AWT API. Det är också en del av Oracles Java Foundation Classes (JFC). Dessutom tillhandahåller Swing grundläggande komponenter som etiketter, textrutor, knappar etc. samt avancerade komponenter som flikar, bord och träd. Därför tillhandahåller Swing mer sofistikerade komponenter än AWT. Här måste programmeraren importera javax.swing-paketet för att skriva en Swing-applikation. Detta paket innehåller ett antal klasser som JButton, JTable, JList, JTextArea och, JCheckBox.

Figur 1: Enkel Java Swing-applikation

Swing är plattformsoberoende och dess komponenter är lätta. Vidare kräver komponenterna minimalt minneutrymme. Därför utförs Swing-program mycket snabbare. Ett vanligt designmönster under utveckling är modell, visning, kontroller (MVC) mönster. Swing följer detta mönster. Det hjälper till att behålla koden enkelt.  

Skillnad mellan AWT och Swing

Definition

AWT är en samling av GUI-komponenter (widgets) och andra relaterade tjänster som krävs för GUI-programmering i Java. Swing är en del av Java Foundation Classes (JFC) som används för att skapa Java-baserade Front End GUI-applikationer. Därför förklarar detta den största skillnaden mellan AWT och Swing i Java.

Typ

AWT-komponenter är tunga medan Swing-komponenterna är lätta.

Plattformberoende

En annan stor skillnad mellan AWT och Swing i Java är att AWT är plattformberoende, medan Swing är plattformoberoende.

Visa

Dessutom stöder AWT inte en pluggbar utseende. Swing stöder en pluggbar utseende. Detta är också en viktig skillnad mellan AWT och Swing i Java.

Komponenter

Dessutom har Swing mer avancerade komponenter än AWT.

Fart

Vidare är utförandet av AWT långsammare. Swing körs emellertid snabbare.

MVC

AWT stöder inte MVC-mönster medan Swing stöder MVC-mönster. Detta är en annan skillnad mellan AWT och Swing.

Minneutrymme

Dessutom kräver AWT-komponenter mer minne, medan Swing-komponenter inte kräver mycket minnesutrymme.

Paket

Programmeraren måste importera paketet javax.awt för att utveckla en AWT-baserad GUI. Programern måste emellertid importera javax.swing-paketet för att skriva en Swing-applikation.

Slutsats

I korthet är AWT och Swing två verktygsverktyg för att skapa rika grafiska användargränssnitt (GUI). Den största skillnaden mellan AWT och Swing i Java är att AWT är Java: s ursprungliga plattformsberoende fönsterhantering, grafik och användargränssnitt widgetverktyg medan Swing är en GUI-widget verktygslåda för Java som är en förlängning av AWT. 

Referens:

1. "AWT Översikt." Www.tutorialspoint.com, Tillgänglig här.
2. "SWING Översikt." Www.tutorialspoint.com, Tillgänglig här.
3. "Swing (Java)." Wikipedia, Wikimedia Foundation, 9 juni 2018, Tillgänglig här.
4. "Abstract Window Toolkit." Wikipedia, Wikimedia Foundation, 26 aug 2018, Tillgänglig här.

Image Courtesy:

1. "Java Swings Wikibook, Händelseshantering, Exempel 1 skärmdump" Av Samwilson - Egent arbete (CC BY-SA 3.0) via Commons Wikimedia