Java Swing Tutorial: Hur man skapar en GUI-applikation i Java

Vad är Swing in Java?

Sväng in Java är ett grafiskt användargränssnitt (GUI) verktygslåda som inkluderar GUI-komponenterna. Swing tillhandahåller en rik uppsättning widgets och paket att göra sofistikerade GUI-komponenter för Java applikationer. Swing är en del av Java Foundation Classes(JFC), som är ett API för Java GUI-programmering som tillhandahåller GUI.

Smakämnen Java Swing-biblioteket är byggt ovanpå Java Abstrakt Widget Toolkit (AWT), en äldre, plattformsberoende GUI-verktygssats. Du kan använda Java enkla GUI-programmeringskomponenter som knapp, textruta, etc., från biblioteket och behöver inte skapa komponenterna från grunden.

I detta Java Swing tutorial, kommer du att lära dig Java GUI grunderna som-

Java Swing klass Hierarkidiagram

Java Swing Class Hierarki Diagram
Java Swing Class Hierarki Diagram

Alla komponenter i Java Swing är JComponent som kan läggas till containerklasser.

Vad är en containerklass?

Behållarklasser är klasser som kan ha andra komponenter på sig. Så för att skapa en Java Swing GUI, vi behöver minst ett containerobjekt. Det finns 3 typer av Java Svängcontainrar.

  1. Panel: Det är en ren behållare och är inte ett fönster i sig. Det enda syftet med en panel är att organisera komponenterna på ett fönster.
  2. Ram: Det är ett fullt fungerande fönster med dess titel och ikoner.
  3. dialog: Det kan ses som ett popup-fönster som dyker upp när ett meddelande måste visas. Det är inte ett fullt fungerande fönster som Frame.

Vad är GUI i Java?

GUI (Graphical User Interface) i Java är en lättanvänd visuell upplevelsebyggare för Java applikationer. Den är huvudsakligen gjord av grafiska komponenter som knappar, etiketter, fönster, etc. genom vilka användaren kan interagera med en applikation. GUI spelar en viktig roll att bygga enkla gränssnitt för Java tillämpningar.

Hur man gör ett GUI i Java med exempel

Nu i detta Java GUI Tutorial, låt oss förstå hur man skapar ett GUI i Java med svängningar in Java exempel.

Steg 1) Kopiera kod till en editor
I första steget Kopiera följande kod till en 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 frame
       frame.setVisible(true);
    }
}

Steg 2) Kör koden
Nästa steg, spara, kompilera och kör koden

Steg 3) Kopiera följande kod till en editor
Låt oss nu lägga till en knapp i vår ram. Kopiera följande kod till en editor från given Java Exempel på UI

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);
     }
}


Steg 4) Kör koden
Kör sedan koden. Du kommer att få en stor knapp.


Java Exempel på GUI

Steg 5) Lägg till två knappar

Vad sägs om att lägga till två knappar? Kopiera följande kod till en 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);
     }
}

Steg 6) Spara och kör programmet
Därefter, spara, kompilera och kör programmet.

Steg 7) Kontrollera utgången
Oväntat resultat =? Knapparna överlappar varandra.

Java layout chef

Layouthanteraren används för att layouta (eller arrangera) det grafiska användargränssnittet Java komponenter inuti en behållare. Det finns många layouthanterare, men de mest använda är-

Java BorderLayout

A BorderLayout placerar komponenter i upp till fem områden: topp, botten, vänster, höger och mitten. Det är standardlayouthanteraren för varje java JFrame

Java BorderLayout
Java BorderLayout

Java Flödeslayout

FlowLayout är standardlayouthanteraren för varje JPanel. Den lägger helt enkelt ut komponenter i en enda rad efter varandra.

Java Flödeslayout
Java Flödeslayout

Java GridBagLayout

Det är den mer sofistikerade av alla layouter. Den justerar komponenter genom att placera dem i ett rutnät av celler, vilket gör att komponenter kan sträcka sig över mer än en cell.

Java GridBagLayout

Java GridBagLayout

Steg 8) Skapa chattram
Vad sägs om att skapa en chattram som nedan?


Exempel på Java GUI

Försök att koda dig själv innan du tittar på programmet nedan.

//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 Frame
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);

        //Creating the MenuBar and adding components
        JMenuBar 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 components
        JPanel panel = new JPanel(); // the panel is not visible in output
        JLabel label = new JLabel("Enter Text");
        JTextField tf = new JTextField(10); // accepts upto 10 characters
        JButton send = new JButton("Send");
        JButton reset = new JButton("Reset");
        panel.add(label); // Components Added using Flow Layout
        panel.add(tf);
        panel.add(send);
        panel.add(reset);

        // Text Area at the Center
        JTextArea 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);
    }
}