Skip to content

Пример простейшего многооконного визуального приложения на Swing для IntelliJ IDEA на Java

License

Notifications You must be signed in to change notification settings

tsnsoft/TSN_Idea_MultiForms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TSN_Idea_MultiForms

Пример простейшего многооконного визуального приложения на Swing для IntelliJ IDEA на Java

screenshot

screenshot

Main.java

package kz.talipovsn.ij.multiforms;

import javax.swing.*;

// Основной класс-запускатель программы
public class Main {

    static StringBuilder data = new StringBuilder(); // Общая переменная для всех форм

    static JFrame form1; // Общая ссылка на форму 1
    static JFrame form2; // Общая ссылка на форму 2

    // Точка входа в программу
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            form1 = new Form1(); // Создаем в памяти форму 1
            form2 = new Form2(); // Создаем в памяти форму 2
            form1.setVisible(true); // Делаем видимой форму 1
        });
    }
}

Form1.java

package kz.talipovsn.ij.multiforms;

import javax.swing.*;
import java.awt.*;

// Форма 1
public class Form1 extends JFrame {

    private JButton nextButton;
    private JTextField textField_Fio;
    private JPanel panel1;
    private JTextField textField_tel;

    public Form1() {
        // Инициализация компонент
        getContentPane().add(panel1);
        setResizable(false);
        setIconImage(Toolkit.getDefaultToolkit().createImage(getClass().getResource("icon.png")));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Многооконная программа");
        pack();
        setLocationRelativeTo(null);

        // Кнопка "Далее"
        nextButton.addActionListener(actionEvent -> {
            // Очистим общую переменную
            Main.data.setLength(0);

            String s1 = textField_Fio.getText(); // Узнаем ФИО
            String s2 = textField_tel.getText(); // Узнаем телефон

            // Сохраняем нужные данные в общую переменную
            if (!s1.equals("")) {
                Main.data.append(s1);
                if (!s2.equals("")) {
                    Main.data.append(", номер: ").append(s2);
                }
            } else {
                Main.data.append("???");
            }

            Main.form1.setVisible(false); // Скрываем форму 1
            Main.form2.setVisible(true); // Делаем видимой форму 2
        });

    }

}

Form2.java

package kz.talipovsn.ij.multiforms;

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;

// Форма 2
public class Form2 extends JFrame {
    private JPanel panel2;
    private JButton priorButton;
    private JButton exitButton;
    private JLabel label_Data;

    public Form2() {
        // Инициализация компонент
        getContentPane().add(panel2);
        setResizable(false);
        setIconImage(Toolkit.getDefaultToolkit().createImage(getClass().getResource("icon.png")));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Многооконная программа");
        pack();
        setLocationRelativeTo(null);

        // Кнопка "Назад"
        priorButton.addActionListener(actionEvent -> {
            Main.form2.setVisible(false); // Скрываем форму 2
            Main.form1.setVisible(true);  // Делаем видимой форму 1
        });

        // Кнопка "Выход"
        exitButton.addActionListener(actionEvent -> System.exit(0));

        // Переопределяем нужные нам обработчики событий для окна
        addWindowListener(new WindowAdapter() {
            // Открытие окна
            @Override
            public void windowActivated(java.awt.event.WindowEvent evt) {
                // Устанавливаем данные из общей переменной
                label_Data.setText(Main.data.toString());
            }
        });
    }

}

About

Пример простейшего многооконного визуального приложения на Swing для IntelliJ IDEA на Java

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages