Создаем ДВА java файла. В каждом файле в методе main реализуем логику поведения окна.
Файл Main.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Окно 1");
frame.setBounds(10, 10, 400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
JButton button = new JButton("Переход на окно 2");
button.setBounds(10, 10, 300, 40);
frame.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
MainWindow.main(null); // Открыть второе окно
frame.dispose(); // закрыть это окно
}
});
frame.setVisible(true);
}
}
Файл MainWindow.java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainWindow {
public static void main(String[] args) {
JFrame frame = new JFrame("Окно 2");
frame.setBounds(500, 500, 400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
JButton button = new JButton("Переход на окно 1");
button.setBounds(10, 10, 300, 40);
frame.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Main.main(null); // Открыть первое окно
frame.dispose(); // закрыть это окно
}
});
frame.setVisible(true);
}
}