Qual è la differenza tra AWT e Swing in Java

Il differenza principale tra AWT e Swing in Java è quello AWT è il toolkit di widget per finestre, grafica e interfaccia utente di piattaforma originale di Java, mentre Swing è un toolkit di widget GUI per Java che è un'estensione di AWT.  

Java è un linguaggio di programmazione generale di alto livello che supporta la programmazione orientata agli oggetti, il multithreading, l'indipendenza dalla piattaforma e molte altre funzionalità. Il programmatore può scrivere una varietà di applicazioni tra cui desktop, web, mobile, elaborazione di immagini, ecc. Utilizzando il linguaggio Java. Fornisce toolkit per costruire una ricca interfaccia grafica utente (GUI). AWT e Swing sono due di loro.

Aree chiave coperte

1. Cos'è la GUI
     - Definizione, Funzionalità
2. Cos'è AWT
     - Definizione, Funzionalità
3. Cos'è Swing
     - Definizione, Funzionalità
4. Qual è la differenza tra AWT e Swing in Java
     - Confronto tra le principali differenze

Parole chiave

AWT, GUI, Java, Swing

Cos'è una GUI

GUI sta per Interfaccia grafica utente. È un'interfaccia che consente agli utenti di gestire un'applicazione e svolgere le attività richieste. Inoltre, una GUI è composta da vari componenti. Finestra, pulsanti, pulsanti di opzione, caselle di controllo, etichette, elenchi a discesa, campi di testo, caselle combinate sono alcuni componenti della GUI. Questi componenti possono attivare eventi. Ad esempio, una nuova pagina si apre dopo aver fatto clic su un pulsante, oppure l'utente può inserire i dettagli della registrazione e premere il pulsante di invio. La maggior parte delle applicazioni ha una GUI che consente all'utente di comunicare con l'applicazione.

Cos'è AWT

AWT sta per Toolkit di finestre astratte. È un'API per sviluppare GUI o applicazioni basate su Windows in Java. Richiede un oggetto OS nativo per implementare le funzionalità. Inoltre, i componenti AWT sono pesanti e richiedono più spazio di memoria. Inoltre, richiedono del tempo per essere eseguiti. Inoltre, il programmatore deve importare il pacchetto javax.awt per sviluppare una GUI basata su AWT. Button, barre di scorrimento, campi di testo, elenchi, finestre di dialogo e pannelli sono alcuni componenti AWT. Dopo aver creato gli oggetti, vengono posizionati in un contenitore. Inoltre, fornisce lo spazio richiesto per il caricamento dei componenti. Di solito, l'applicazione AWT in un sistema operativo può apparire diversa in un altro sistema operativo.

Cos'è Swing

Swing è un kit di strumenti widget GUI per Java. È costruito sopra l'API AWT. Inoltre, fa parte delle Java Foundation Classes (JFC) di Oracle. Inoltre, Swing fornisce componenti di base come etichette, caselle di testo, pulsanti, ecc. Nonché componenti avanzati come pannelli a schede, tabelle e alberi. Pertanto, Swing fornisce componenti più sofisticati di AWT. Qui, il programmatore deve importare il pacchetto javax.swing per scrivere un'applicazione Swing. Questo pacchetto fornisce un numero di classi come JButton, JTable, JList, JTextArea e, JCheckBox.

Figura 1: applicazione Java Swing semplice

Swing è indipendente dalla piattaforma e i suoi componenti sono leggeri. Inoltre, i componenti richiedono uno spazio di memoria minimo. Pertanto, le applicazioni Swing vengono eseguite molto più velocemente. Uno schema di progettazione comune in fase di sviluppo è il modello Model, View, Controller (MVC). Swing segue questo schema. Aiuta a mantenere il codice facilmente.  

Differenza tra AWT e Swing

Definizione

AWT è una raccolta di componenti GUI (widget) e altri servizi correlati necessari per la programmazione GUI in Java. Swing fa parte di Java Foundation Classes (JFC) utilizzato per creare applicazioni GUI front-end basate su Java. Quindi, questo spiega la principale differenza tra AWT e Swing in Java.

genere

I componenti AWT sono pesanti mentre i componenti Swing sono leggeri.

Dipendenza dalla piattaforma

Un'altra importante differenza tra AWT e Swing in Java è che AWT è dipendente dalla piattaforma mentre Swing è indipendente dalla piattaforma.

Display

Inoltre, AWT non supporta un aspetto e un tocco collegabili. Altalena supporta un aspetto e un tocco collegabili. Questa è anche un'importante differenza tra AWT e Swing in Java.

componenti

Inoltre, Swing ha componenti più avanzati di AWT.

Velocità

Inoltre, l'esecuzione di AWT è più lenta. Tuttavia, Swing viene eseguito più velocemente.

MVC

AWT non supporta pattern MVC mentre Swing supporta pattern MVC. Questa è un'altra differenza tra AWT e Swing.

Spazio di memoria

Inoltre, i componenti AWT richiedono più spazio di memoria, mentre i componenti Swing non richiedono molto spazio in memoria.

Pacchetto

Il programmatore deve importare il pacchetto javax.awt per sviluppare una GUI basata su AWT. Tuttavia, il programmatore deve importare il pacchetto javax.swing per scrivere un'applicazione Swing.

Conclusione

In breve, AWT e Swing sono due toolkit per creare una ricca interfaccia grafica utente (GUI). La principale differenza tra AWT e Swing in Java è che AWT è il toolkit di widget di finestre, grafica e interfaccia utente dipendente dalla piattaforma originale di Java, mentre Swing è un toolkit di widget GUI per Java che è un'estensione di AWT. 

Riferimento:

1. "Panoramica AWT". Www.tutorialspoint.com, disponibile qui.
2. "Panoramica SWING." Www.tutorialspoint.com, disponibile qui.
3. "Swing (Java)." Wikipedia, Wikimedia Foundation, 9 giugno 2018, disponibile qui.
4. "Abstract Window Toolkit." Wikipedia, Wikimedia Foundation, 26 agosto 2018, disponibile qui.

Cortesia dell'immagine:

1. "Java Swings Wikibook, Event Handling, screenshot di esempio 1" Di Samwilson - Opera propria (CC BY-SA 3.0) via Commons Wikimedia