Зависание фрейма при вызове другого класса - Java
Формулировка задачи:
В классе1 есть один фрейм, на нем есть кнопка.
Когда нажимаю на кнопку, должен запускаться сервер в классе2, закрываться фрейм в классе1 и запускаться фрейм в классе2.
Нажимаю на кнопку, фрейм в классе1 закрывается, но класс ни на что не реагирует (останавливается на строчке сервера), сервер запускается, а фрейм в классе2 не запускается.
Листинг программы
- package Mode;
- import Server.Server;
- import javax.swing.*;
- public class MainGUI{
- public static void StartGUI(){
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- createAndShowGUI();
- }
- });
- }
- private static void createAndShowGUI() {
- final JFrame MainFrame = new JFrame("Test");
- MainFrame.setSize(400, 300);
- final JPanel panel1 = new JPanel();
- MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JButton запуститьСерверButton = new JButton("Запустить сервер");
- panel1.add(запуститьСерверButton);
- MainFrame.setVisible(true);
- panel1.setVisible(true);
- MainFrame.getContentPane().add(panel1);
- запуститьСерверButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- MainFrame.setVisible(false);
- new Server();
- }
- });
- }
- }
Листинг программы
- package Server;
- import javax.swing.*;
- public class Server {
- public Server(JFrame frame) {
- new Server(0);
- new ServerGUI().StartGUI();
- }
- }
Листинг программы
- package Server;
- import javax.swing.*;
- public class ServerGUI {
- public static void StartGUI(){
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- createAndShowGUI();
- }
- });
- }
- private static void createAndShowGUI() {
- final JFrame ServerFrame = new JFrame("Test");
- ServerFrame.setSize(400, 400);
- final JPanel panel1 = new JPanel();
- }
- }
Решение задачи: «Зависание фрейма при вызове другого класса»
textual
Листинг программы
- запуститьСерверButton.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- MainFrame.setVisible(false);
- new Server();
- }
- });
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д