Swing in Java: sapere come creare una GUI con esempi



: guadagna il concetto di swing in java con gerarchia di classi swing e layout manager con una dimostrazione pratica dell'applicazione GUI.

Swing in java fa parte della classe di base Java che è leggera e indipendente dalla piattaforma. Viene utilizzato per creare applicazioni basate su finestre. Include componenti come pulsante, barra di scorrimento, campo di testo ecc. Mettendo insieme tutti questi componenti si crea un'interfaccia utente grafica. In questo articolo, esamineremo i concetti coinvolti nel processo di creazione di applicazioni utilizzando swing in . Di seguito sono riportati i concetti discussi in questo articolo:

Cos'è Swing In Java?

Swing in Java è un toolkit GUI leggero che ha un'ampia varietà di widget per la creazione di applicazioni basate su finestre ottimizzate. Fa parte delle JFC (Java Foundation Classes). È basato sull'API AWT e interamente scritto in formato . È indipendente dalla piattaforma a differenza di AWT e ha componenti leggeri.





Diventa più facile creare applicazioni poiché abbiamo già componenti GUI come pulsanti, caselle di controllo, ecc. Questo è utile perché non dobbiamo ricominciare da capo.

Classe contenitore

Qualunque che ha altri componenti in esso viene chiamato come classe contenitore. Per la creazione di applicazioni GUI è necessaria almeno una classe contenitore.



Di seguito sono riportati i tre tipi di classi contenitore:

  1. Pannello: viene utilizzato per organizzare i componenti in una finestra

  2. Frame: una finestra completamente funzionante con icone e titoli



  3. Finestra di dialogo: è come una finestra pop-up ma non completamente funzionale come la cornice

Differenza tra AWT e Swing

AWT SWING
  • Dipendente dalla piattaforma
  • Piattaforma indipendente
  • Non segue MVC
  • Segue MVC
  • Componenti minori
  • Componenti più potenti
  • Non supporta l'aspetto e il funzionamento collegabili
  • Supporta aspetto e funzionalità collegabili
  • Heavyweight
  • Leggero

Gerarchia di classi Java Swing

gerarchia-swing in java-edureka

Spiegazione : Tutti i componenti in swing come JButton, JComboBox, JList, JLabel sono ereditati dalla classe JComponent che può essere aggiunta alle classi container. I contenitori sono le finestre come la cornice e le finestre di dialogo. I componenti swing di base sono gli elementi costitutivi di qualsiasi applicazione GUI. Metodi come setLayout sovrascrivono il layout predefinito in ogni contenitore. Contenitori come JFrame e JDialog possono solo aggiungere un componente a se stesso. Di seguito sono riportati alcuni componenti con esempi per capire come possiamo usarli.

Classe JButton

Viene utilizzato per creare un pulsante etichettato. L'utilizzo di ActionListener comporterà un'azione quando si preme il pulsante. Eredita la classe AbstractButton ed è indipendente dalla piattaforma.

Esempio:

import javax.swing. * esempio di classe pubblica {public static void main (String args []) {JFrame a = new JFrame ('example') JButton b = new JButton ('click me') b.setBounds (40,90, 85,20) a.add (b) a.setSize (300,300) a.setLayout (null) a.setVisible (true)}}

Produzione:

come scrivere una classe singleton in java

Classe JTextField

Eredita la classe JTextComponent e viene utilizzato per consentire la modifica di una singola riga di testo.

Esempio:

import javax.swing. * esempio di classe pubblica {public static void main (String args []) {JFrame a = new JFrame ('example') JTextField b = new JTextField ('edureka') b.setBounds (50,100,200,30) a .add (b) a.setSize (300,300) a.setLayout (null) a.setVisible (true)}}

Produzione:

Classe JScrollBar

Viene utilizzato per aggiungere la barra di scorrimento, sia orizzontale che verticale.

Esempio:

import javax.swing. * class example {example () {JFrame a = new JFrame ('example') JScrollBar b = new JScrollBar () b.setBounds (90,90,40,90) a.add (b) a. setSize (300,300) a.setLayout (null) a.setVisible (true)} public static void main (String args []) {new example ()}}

Produzione:

Classe JPanel

Eredita la classe JComponent e fornisce spazio per un'applicazione che può collegare qualsiasi altro componente.

import java.awt. * import javax.swing. * public class Example {Example () {JFrame a = new JFrame ('example') JPanel p = new JPanel () p.setBounds (40,70,200,200) JButton b = new JButton ('cliccami') b.setBounds (60,50,80,40) p.add (b) a.add (p) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} public static void main (String args []) {new Example ()}}

Produzione:

modi per creare una classe singleton in java

JMenu Clas S

Eredita la classe JMenuItem ed è un componente del menu a discesa che viene visualizzato dalla barra dei menu.

import javax.swing. * class Example {JMenu menu JMenuItem a1, a2 Example () {JFrame a = new JFrame ('Example') menu = new JMenu ('options') JMenuBar m1 = new JMenuBar () a1 = new JMenuItem ( 'esempio') a2 = new JMenuItem ('esempio1') menu.add (a1) menu.add (a2) m1.add (menu) a.setJMenuBar (m1) a.setSize (400,400) a.setLayout (null) a .setVisible (true)} public static void main (String args []) {new Example ()}}

Produzione:

Classe JList

Eredita la classe JComponent, l'oggetto della classe JList rappresenta un elenco di elementi di testo.

import javax.swing. * public class Example {Example () {JFrame a = new JFrame ('example') DefaultListModel l = new DefaultListModel () l.addElement ('first item') l.addElement ('second item') JList b = new JList (l) b.setBounds (100,100,75,75) a.add (b) a.setSize (400,400) a.setVisible (true) a.setLayout (null)} public static void main (String args [ ]) {nuovo esempio ()}}

Produzione:

Classe JLabel

Viene utilizzato per posizionare il testo in un contenitore. Eredita anche la classe JComponent.

import javax.swing. * public class Esempio {public static void main (String args []) {JFrame a = new JFrame ('example') JLabel b1 b1 = new JLabel ('edureka') b1.setBounds (40,40, 90,20) a.add (b1) a.setSize (400,400) a.setLayout (null) a.setVisible (true)}}

Produzione:

Classe JComboBox

Eredita la classe JComponent e viene utilizzato per mostrare il menu a comparsa delle scelte.

import javax.swing. * public class Esempio {JFrame a Example () {a = new JFrame ('example') string course [] = {'core java', 'advance java', 'java servlet'} JComboBox c = new JComboBox (corsi) c.setBounds (40,40,90,20) a.add (c) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} public static void main (String args [] ) {nuovo esempio ()}}

Produzione:

Gestore layout

Per disporre i componenti all'interno di un contenitore utilizziamo il layout manager. Di seguito sono riportati diversi gestori di layout:

cos'è il frame in java
  1. Layout del bordo

  2. Layout di flusso

  3. Layout GridBag

Layout del bordo

Il gestore di layout predefinito per ogni JFrame è BorderLayout. Posiziona i componenti in un massimo di cinque posizioni: in alto, in basso, a sinistra, a destra e al centro.

Layout di flusso

FlowLayout dispone semplicemente i componenti in fila uno dopo l'altro, è il gestore di layout predefinito per ogni JPanel.

Layout GridBag

GridBagLayout inserisce i componenti in una griglia che consente ai componenti di estendersi su più di una cella.

Esempio: Chat Frame

import javax.swing. * import java.awt. * class Esempio {public static void main (String args []) {JFrame frame = new JFrame ('Chat Frame') frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) frame.setSize (400 , 400) JMenuBar ob = new JMenuBar () JMenu ob1 = new JMenu ('FILE') JMenu ob2 = new JMenu ('Help') ob.add (ob1) ob.add (ob2) JMenuItem m11 = new JMenuItem ('Open ') JMenuItem m22 = new JMenuItem (' Salva con nome ') ob1.add (m11) ob1.add (m22) JPanel panel = new JPanel () // il pannello non è visibile nell'output JLabel label = new JLabel (' Enter Text ') JTextField tf = new JTextField (10) // accetta fino a 10 caratteri JButton send = new JButton (' Send ') JButton reset = new JButton (' Reset ') panel.add (label) // Componenti aggiunti utilizzando il pannello Flow Layout .add (label) // Componenti aggiunti utilizzando Flow Layout panel.add (tf) panel.add (send) panel.add (reset) JTextArea ta = new JTextArea () frame.getContentPane (). add (BorderLayout.SOUTH, panel ) frame.getContentPane (). add (BorderLayout.NORTH, tf) frame.getContentPane (). add (Border Layout.CENTER, ta) frame.setVisible (true)}}

Questo è un semplice esempio per creare una GUI utilizzando swing in Java.

In questo articolo abbiamo discusso lo swing in Java e la gerarchia delle classi swing Java. Con tutti i componenti forniti con swing in Java, diventa più facile creare applicazioni GUI ottimizzate. Il linguaggio di programmazione Java è un linguaggio di programmazione strutturato e con la crescente domanda diventa estremamente importante padroneggiare tutti i concetti in . Per iniziare il tuo apprendimento e diventare un esperto nella programmazione Java, iscriviti a Edureka's .

Hai domande per noi? menzionalo nella sezione commenti di questo articolo 'Swing In Java' e ti risponderemo il prima possibile.