Cos'è Swing in Java?
Swing in Java è un toolkit dell'interfaccia utente grafica (GUI) che include i componenti della GUI. Swing fornisce un ricco set di widget e pacchetti per creare sofisticati componenti GUI per applicazioni Java. Swing fa parte di Java Foundation Classes (JFC), che è un'API per programmi Java che forniscono GUI.
La libreria Java Swing è costruita sopra il Java Abstract Widget Toolkit ( AWT ), un vecchio toolkit GUI dipendente dalla piattaforma. È possibile utilizzare i componenti di programmazione della GUI Java come pulsanti, caselle di testo, ecc. Dalla libreria e non è necessario creare i componenti da zero.
In questo tutorial Java Swing imparerai-
- Cos'è Swing in Java?
- Cos'è una classe contenitore?
- Cos'è la GUI in Java?
- Esempio di GUI Java
- Java Layout Manager
- Java BorderLayout
- Java FlowLayout
- Java GridBagLayout
Diagramma della gerarchia delle classi Java Swing

Tutti i componenti in Java Swing sono JComponent che possono essere aggiunti alle classi contenitore.
Cos'è una classe contenitore?
Le classi contenitore sono classi che possono contenere altri componenti. Quindi, per creare una GUI Java, abbiamo bisogno di almeno un oggetto contenitore. Esistono 3 tipi di contenitori Java Swing.
- Pannello : è un puro contenitore e non è una finestra in sé. L'unico scopo di un pannello è organizzare i componenti in una finestra.
- Cornice : è una finestra completamente funzionante con il suo titolo e le icone.
- Finestra di dialogo : può essere pensata come una finestra pop-up che viene visualizzata quando è necessario visualizzare un messaggio. Non è una finestra completamente funzionante come Frame.
Cos'è la GUI in Java?
La GUI (Graphical User Interface) in Java è un generatore di esperienze visive di facile utilizzo per le applicazioni Java. È costituito principalmente da componenti grafici come pulsanti, etichette, finestre, ecc. Attraverso i quali l'utente può interagire con un'applicazione. La GUI gioca un ruolo importante per creare interfacce facili per le applicazioni Java.
Esempio di GUI Java
Ora in questo tutorial su Java Swing, comprendiamo la GUI con esempi di Java Swing.
Esempio : per apprendere la programmazione della GUI Java in questo tutorial della GUI Java. Passaggio 1) Copiare il codice seguente in un editor
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button = new JButton("Press");frame.getContentPane().add(button); // Adds Button to content pane of frameframe.setVisible(true);}}
Passaggio 2) Salva, compila ed esegui il codice.Passaggio 3) Ora aggiungiamo un pulsante alla nostra cornice. Copia il seguente codice in un editor da un dato esempio di GUI Java
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Press");frame.getContentPane().add(button1);frame.setVisible(true);}}
Passaggio 4) Esegui il codice. Otterrai un grande pulsante
Passaggio 5) Che ne dici di aggiungere due pulsanti? Copia il codice seguente in un editor.
import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Button 1");JButton button2 = new JButton("Button 2");frame.getContentPane().add(button1);frame.getContentPane().add(button2);frame.setVisible(true);}}
Passaggio 6) Salva, compila ed esegui il programma.Passaggio 7) Output imprevisto =? I pulsanti si sovrappongono.
Java Layout Manager
Il gestore di layout viene utilizzato per impaginare (o organizzare) i componenti java della GUI all'interno di un contenitore. Ci sono molti gestori di layout, ma i più usati sono:
Java BorderLayout
ABorderLayout
posiziona i componenti in un massimo di cinque aree: superiore, inferiore, sinistra, destra e centrale. È il layout manager predefinito per ogni JFrame java
Java FlowLayout
FlowLayout
è il gestore di layout predefinito per ogni file JPanel
. Si limita a disporre i componenti in una singola riga uno dopo l'altro.
Java GridBagLayout
È il più sofisticato di tutti i layout. Allinea i componenti posizionandoli all'interno di una griglia di celle, consentendo ai componenti di estendersi su più di una cella.
Passaggio 8) Che ne dici di creare un frame di chat come di seguito?
Prova a codificarti prima di guardare il programma qui sotto.
//Usually you will require both swing and awt packages// even if you are working with just swings.import javax.swing.*;import java.awt.*;class gui {public static void main(String args[]) {//Creating the FrameJFrame frame = new JFrame("Chat Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);//Creating the MenuBar and adding componentsJMenuBar mb = new JMenuBar();JMenu m1 = new JMenu("FILE");JMenu m2 = new JMenu("Help");mb.add(m1);mb.add(m2);JMenuItem m11 = new JMenuItem("Open");JMenuItem m22 = new JMenuItem("Save as");m1.add(m11);m1.add(m22);//Creating the panel at bottom and adding componentsJPanel panel = new JPanel(); // the panel is not visible in outputJLabel label = new JLabel("Enter Text");JTextField tf = new JTextField(10); // accepts upto 10 charactersJButton send = new JButton("Send");JButton reset = new JButton("Reset");panel.add(label); // Components Added using Flow Layoutpanel.add(tf);panel.add(send);panel.add(reset);// Text Area at the CenterJTextArea ta = new JTextArea();//Adding Components to the frame.frame.getContentPane().add(BorderLayout.SOUTH, panel);frame.getContentPane().add(BorderLayout.NORTH, mb);frame.getContentPane().add(BorderLayout.CENTER, ta);frame.setVisible(true);}}