Java Swing Урок: Как да създадете GUI приложение в Java

Какво е Swing in Java?

Завъртете се Java е набор от инструменти за графичен потребителски интерфейс (GUI), който включва компонентите на GUI. Swing предоставя богат набор от изпълними модули и пакети за създаване на сложни GUI компоненти Java приложения. Суингът е част от Java Foundation Classes (JFC), който е API за Java GUI програмиране, което предоставя GUI.

- Java Библиотеката Swing е изградена върху Java Инструментариум за абстрактни джаджи (AWT), по-стар, зависим от платформата GUI инструментариум. Можете да използвате Java прости компоненти за програмиране на GUI като бутон, текстово поле и т.н. от библиотеката и не е необходимо да създавате компонентите от нулата.

В този Java Swing урок, ще научите Java Основи на GUI като-

Java Йерархична диаграма на Swing клас

Java Диаграма на йерархията на Swing клас
Java Диаграма на йерархията на Swing клас

Всички компоненти в Java Swing са JComponent, които могат да се добавят към контейнерни класове.

Какво е контейнерен клас?

Контейнерните класове са класове, които могат да имат други компоненти върху себе си. Така че за създаването на a Java Swing GUI, имаме нужда от поне един контейнерен обект. Има 3 вида на Java Люлеещи се контейнери.

  1. Панел: Това е чист контейнер и не е прозорец сам по себе си. Единствената цел на панела е да организира компонентите в прозорец.
  2. Рамка: Това е напълно функциониращ прозорец със своето заглавие и икони.
  3. диалог: Може да се разглежда като изскачащ прозорец, който изскача, когато трябва да се покаже съобщение. Това не е напълно функциониращ прозорец като рамката.

В какво е GUI Java?

GUI (графичен потребителски интерфейс) в Java е лесен за използване инструмент за създаване на визуално изживяване за Java приложения. Основно се състои от графични компоненти като бутони, етикети, прозорци и т.н., чрез които потребителят може да взаимодейства с приложение. GUI играе важна роля за изграждане на лесни интерфейси Java приложения.

Как да направите GUI в Java с Пример

Сега в това Java Урок за GUI, нека разберем как да създадем GUI в Java с люлки навътре Java примери.

Стъпка 1) Копирайте кода в редактор
В първата стъпка Копирайте следния код в редактор.

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

Стъпка 2) Стартирайте кода
Следваща стъпка, Запазете, компилирайте и стартирайте кода

Стъпка 3) Копирайте следния код в редактор
Сега нека добавим бутон към нашата рамка. Копирайте следния код в редактор от дадения 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);
     }
}

Стъпка 4) Изпълнете кода
След това изпълнете кода. Ще получите голям бутон.


Java GUI Пример

Стъпка 5) Добавете два бутона

Какво ще кажете за добавяне на два бутона? Копирайте следния код в редактор.

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

Стъпка 6) Запазете и стартирайте програмата
След това запишете, компилирайте и стартирайте програмата.

Стъпка 7) Проверете изхода
Неочакван резултат =? Бутоните се припокриват.

Java Разпределение на мениджъра

Мениджърът на оформлението се използва за оформление (или подреждане) на GUI Java компоненти вътре в контейнер. Има много мениджъри на оформление, но най-често използваните са:

Java BorderLayout

A BorderLayout поставя компоненти в до пет области: отгоре, отдолу, отляво, отдясно и в центъра. Това е мениджърът на оформлението по подразбиране за всеки java JFrame

Java BorderLayout

Java BorderLayout

Java FlowLayout

FlowLayout е мениджърът на оформлението по подразбиране за всеки JPanel. Той просто подрежда компонентите в един ред един след друг.

Java FlowLayout

Java FlowLayout

Java GridBagLayout

Това е по-сложното от всички оформления. Той подравнява компонентите, като ги поставя в мрежа от клетки, което позволява на компонентите да обхващат повече от една клетка.

Java GridBagLayout

Java GridBagLayout

Стъпка 8) Създайте рамка за чат
Какво ще кажете за създаване на рамка за чат като по-долу?


Пример за Java GUI

Опитайте се да кодирате себе си, преди да разгледате програмата по-долу.

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