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

โšก Smart sammanfattning

Java Swing Tutorial tรคcker den lรคtta GUI-verktygslรฅdan fรถr skrivbordsappar med containrar, komponenter och layouter.

  • ๐ŸชŸ Ren Java: Samma utseende รถver alla operativsystem.
  • ๐Ÿ—๏ธ behรฅllare: JFrame รคr vรคrd fรถr anvรคndargrรคnssnittet.
  • ๐Ÿงฑ Komponenter: JButton och JLabel tรคcker anvรคndargrรคnssnitt.
  • ๐Ÿ“ Layouter: BorderLayout och GridBagLayout.
  • ???? Gunga vs. JavaFX: Gungan รคr frusen; JavaFX รคr modernt.
  • ๐Ÿค– AI-migrering: AI migrerar Swing till JavaFX

Java Swing GUI-handledning

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.

Ocuco-landskapet Java Swing-biblioteket รคr byggt ovanpรฅ Java Abstract Widgetverktygslรฅda (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รคngbar ingรฅng 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);
    }
}

Vanliga frรฅgor

AWT anvรคnder inbyggda widgetar. Swing รคr renodlat Java. JavaFX รคr modernt.

Ja. Copilot รถversรคtter komponenter.

AI genererar JFrame-kod; flaggar EDT-problem.

Oracle rekommenderar JavaFX. Swing fรถr arv.

JFrame รคr standardfรถnstret.

GridBagLayout รคr mest flexibel.

Swing รคr inte trรฅdsรคker; anvรคnd SwingUtilities.invokeLater.

Anvรคnd UIManager.setLookAndFeel.

Sammanfatta detta inlรคgg med: