Учебники

47) Java GUI — Swing

Что такое свинг?

Java Swing — это легкий инструментарий графического интерфейса пользователя (GUI), который включает в себя богатый набор виджетов. Он включает в себя пакет, позволяющий создавать компоненты графического интерфейса для приложений Java, и не зависит от платформы.

Библиотека Swing построена на основе Java Abstract Widget Toolkit ( AWT ), более старого, зависимого от платформы инструментария GUI. Вы можете использовать компоненты библиотеки Java, такие как кнопка, текстовое поле и т. Д. Из библиотеки, и вам не нужно создавать компоненты с нуля.

В этом уроке вы узнаете

Диаграмма иерархии классов Java Swing

Создание компонентов GUI с использованием Java Swing Tutorial

Все компоненты в Swing являются JComponent, который может быть добавлен к классам контейнера.
 

Что такое контейнерный класс?

Контейнерные классы — это классы, в которых могут быть другие компоненты. Поэтому для создания графического интерфейса нам нужен как минимум один контейнерный объект. Есть 3 типа контейнеров.

  1. Панель : это чистый контейнер, а не окно само по себе. Единственная цель Panel — организовать компоненты в окне.
  2. Рамка : это полнофункциональное окно с заголовком и значками.
  3. Диалог : это можно представить как всплывающее окно, которое появляется, когда необходимо отобразить сообщение. Это не полностью функционирующее окно, как Frame.

Пример графического интерфейса Java

Пример : Чтобы научиться проектировать GUI в 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) Теперь давайте добавим кнопку в наш фрейм. Скопируйте следующий код в редактор

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) Выполнить код. Вы получите большую кнопку

Создание компонентов GUI с использованием Java Swing Tutorial

Шаг 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 Layout Manger

Менеджер компоновки используется для компоновки (или компоновки) Java-компонентов GUI внутри контейнера. Существует много менеджеров компоновки, но наиболее часто используемые

Java BorderLayout

А BorderLayoutразмещает компоненты в пяти областях: сверху, снизу, слева, справа, и в центре. Это менеджер компоновки по умолчанию для каждого Java JFrame

Создание компонентов GUI с использованием Java Swing Tutorial

Java FlowLayout

FlowLayoutявляется менеджером по умолчанию для каждого JPanel. Он просто размещает компоненты в один ряд один за другим.

Создание компонентов GUI с использованием Java Swing Tutorial

Java GridBagLayout

Это более сложный из всех макетов. Он выравнивает компоненты, помещая их в сетку ячеек, позволяя компонентам охватывать более одной ячейки.

Создание компонентов GUI с использованием Java Swing Tutorial

Шаг 8) Как насчет создания фрейма чата, как показано ниже?

Создание компонентов GUI с использованием Java Swing Tutorial

Попробуйте написать код, прежде чем смотреть на программу ниже.

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