Java Swing Tutorial: Jak vytvořit GUI aplikaci v Java

Co je Swing in Java?

Vklouzněte dovnitř Java je sada nástrojů grafického uživatelského rozhraní (GUI), která obsahuje komponenty GUI. Swing poskytuje bohatou sadu widgetů a balíčků pro vytváření sofistikovaných komponent GUI Java aplikací. Swing je součástí Java Foundation Classes (JFC), což je API pro Java GUI programování, které poskytuje GUI.

Jedno Java Na vrcholu je postavena houpačka knihovna Java Abstract Widget Toolkit (AWT), starší sada nástrojů GUI závislá na platformě. Můžete použít Java jednoduché programování komponent GUI, jako je tlačítko, textové pole atd., z knihovny a nemusíte vytvářet komponenty od začátku.

V tomto Java Swing tutoriál, naučíte se Java základy GUI jako např.

Java Schéma hierarchie třídy Swing

Java Schéma hierarchie tříd swingu
Java Schéma hierarchie tříd swingu

Všechny komponenty v Java Swing jsou JComponent, které lze přidat do tříd kontejnerů.

Co je kontejnerová třída?

Kontejnerové třídy jsou třídy, které mohou mít další komponenty. Takže pro vytvoření a Java Swing GUI, potřebujeme alespoň jeden kontejnerový objekt. Existují 3 typy Java Houpací kontejnery.

  1. Panel: Je to čistý kontejner a sám o sobě není oknem. Jediným účelem panelu je uspořádat komponenty do okna.
  2. Rám: Jedná se o plně funkční okno s názvem a ikonami.
  3. Dialog: Lze si to představit jako vyskakovací okno, které se objeví, když je třeba zobrazit zprávu. Není to plně funkční okno jako Frame.

V čem je GUI Java?

GUI (grafické uživatelské rozhraní) v Java je snadno použitelný nástroj pro tvorbu vizuálních zážitků Java aplikací. Skládá se hlavně z grafických komponent, jako jsou tlačítka, štítky, okna atd., pomocí kterých může uživatel pracovat s aplikací. GUI hraje důležitou roli při vytváření jednoduchých rozhraní Java aplikace.

Jak vytvořit GUI v Java s příkladem

Nyní v tomto Java GUI Tutorial, pojďme pochopit, jak vytvořit GUI v Java se Swings in Java příklady.

Krok 1) Zkopírujte kód do editoru
V prvním kroku zkopírujte následující kód do editoru.

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

Krok 2) Spusťte kód
Další krok, Uložit, zkompilovat a spustit kód

Krok 3) Zkopírujte následující kód do editoru
Nyní přidáme tlačítko do našeho rámečku. Zkopírujte následující kód do editoru z daného Java Příklad uživatelského rozhraní

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

Krok 4) Spusťte kód
Dále spusťte kód. Získáte velké tlačítko.


Java Příklad GUI

Krok 5) Přidejte dvě tlačítka

Co takhle přidat dvě tlačítka? Zkopírujte následující kód do editoru.

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

Krok 6) Uložit a spustit program
Dále uložte, zkompilujte a spusťte program.

Krok 7) Zkontrolujte výstup
Neočekávaný výstup =? Tlačítka se překrývají.

Java Layout manager

Správce rozložení se používá k rozložení (nebo uspořádání) GUI Java komponenty uvnitř kontejneru. Existuje mnoho správců rozložení, ale nejčastěji používané jsou-

Java BorderLayout

A BorderLayout umístí komponenty až do pěti oblastí: nahoře, dole, vlevo, vpravo a uprostřed. Je to výchozí správce rozložení pro každý java JFrame

Java BorderLayout

Java BorderLayout

Java FlowLayout

FlowLayout je výchozí správce rozložení pro všechny JPanel. Jednoduše rozloží komponenty do jedné řady za sebou.

Java FlowLayout

Java FlowLayout

Java GridBagLayout

Je to sofistikovanější ze všech rozvržení. Zarovná komponenty tak, že je umístí do mřížky buněk, což umožňuje komponentám pokrývat více než jednu buňku.

Java GridBagLayout

Java GridBagLayout

Krok 8) Vytvořte rámeček chatu
Co takhle vytvořit chatovací rámec jako níže?


Příklad Java GUI

Zkuste si kód sami, než se podíváte na program níže.

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