Как закрыть один JFrame и открыть новый JFrame? - Java

Узнай цену своей работы

Формулировка задачи:

привет подскажите как реализовать. есть отдельный класс с выпадающим меню(там три пункта). есть отдельный класс который рисует фрейм, панели, кнопки и тд. есть main который создает объект класса с фреймом. нужно чтобы при нажатии на элементы меню фрейм перерисовывался. пробовал реализовать так - три конструктора в классе с фреймом - один который по умолчанию запускается и при выборе первого пункта меню и два других которые только при выборе меню создаются. но проблема в том что при нажатии на пункт меню просто создаются новые фреймы с новыми компонентами а старый фрейм не закрывается. подскажите как при нажатии закрыть старый и открыть новый?

Решение задачи: «Как закрыть один JFrame и открыть новый JFrame?»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4.  
  5. public class Menu extends JMenuBar {
  6.  
  7.     private static final String BEGINNER = "Новичoк";
  8.     private static final String AMATEUR = "Любитель";
  9.     private static final String PROFESSIONAL = "Профессионал";
  10.     MainFrame mFr;
  11.  
  12.     public Menu() {
  13.  
  14.         JMenu gameMenu = new JMenu("Игра");
  15.         add(gameMenu);
  16.  
  17.         JMenuItem newGame = new JMenuItem("Новая Игра");
  18.         gameMenu.add(newGame);
  19.         newGame.addActionListener(new ActionListener() {
  20.             public void actionPerformed(ActionEvent e) {
  21.                 //рестарт
  22.             }
  23.         });
  24.  
  25.         gameMenu.addSeparator();
  26.  
  27.  
  28.         JMenuItem beginner = new JMenuItem(BEGINNER);
  29.         gameMenu.add(beginner);
  30.  
  31.         beginner.addActionListener(new ActionListener() {
  32.             public void actionPerformed(ActionEvent e) {
  33.  
  34.                 //mFr.removeElements();
  35.                 mFr.setMainPanel(1);
  36.                 //new MainFrame(1);
  37.             }
  38.         });
  39.  
  40.         JMenuItem amateur = new JMenuItem(AMATEUR);
  41.         gameMenu.add(amateur);
  42.  
  43.         amateur.addActionListener(new ActionListener() {
  44.             public void actionPerformed(ActionEvent e) {
  45.                 //mFr.removeElements();
  46.                 mFr.setMainPanel(2);
  47.                 //new MainFrame(2);
  48.             }
  49.         });
  50.  
  51.         JMenuItem professional = new JMenuItem(PROFESSIONAL);
  52.         gameMenu.add(professional);
  53.  
  54.         professional.addActionListener(new ActionListener() {
  55.             public void actionPerformed(ActionEvent e) {
  56.  
  57.                 mFr.removeAllElements(3);
  58.                 //mFr.removeElements();
  59.                 //mFr.setMainPanel(3);
  60.                 //new MainFrame(3);
  61.             }
  62.         });
  63.         gameMenu.addSeparator();
  64.  
  65.         JMenuItem exitGame = new JMenuItem("Выход");
  66.         gameMenu.add(exitGame);
  67.  
  68.         exitGame.addActionListener(new ActionListener() {
  69.             public void actionPerformed(ActionEvent e) {
  70.  
  71.                 System.exit(0);
  72.             }
  73.         });
  74.  
  75.  
  76.         JMenu infoMenu = new JMenu("Справка");
  77.         add(infoMenu);
  78.  
  79.         JMenuItem infoButton = new JMenuItem("Об Игре");
  80.         infoMenu.add(infoButton);
  81.         infoMenu.addSeparator();
  82.         JMenuItem infoButton5 = new JMenuItem("Об Игре5");
  83.         infoMenu.add(infoButton5);
  84.  
  85.  
  86.         JMenu infoMenu2 = new JMenu("Справка2");
  87.         add(infoMenu2);
  88.  
  89.         JMenuItem infoButton7 = new JMenuItem("Об Игре7");
  90.         infoMenu2.add(infoButton7);
  91.         infoMenu2.addSeparator();
  92.         JMenuItem infoButton2 = new JMenuItem("Об Игре2");
  93.         infoMenu2.add(infoButton2);
  94.  
  95.  
  96.     }
  97. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы