Как закрыть один JFrame и открыть новый JFrame? - Java
Формулировка задачи:
привет подскажите как реализовать. есть отдельный класс с выпадающим меню(там три пункта). есть отдельный класс который рисует фрейм, панели, кнопки и тд. есть main который создает объект класса с фреймом. нужно чтобы при нажатии на элементы меню фрейм перерисовывался. пробовал реализовать так - три конструктора в классе с фреймом - один который по умолчанию запускается и при выборе первого пункта меню и два других которые только при выборе меню создаются. но проблема в том что при нажатии на пункт меню просто создаются новые фреймы с новыми компонентами а старый фрейм не закрывается. подскажите как при нажатии закрыть старый и открыть новый?
Решение задачи: «Как закрыть один JFrame и открыть новый JFrame?»
textual
Листинг программы
- import javax.swing.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- public class Menu extends JMenuBar {
- private static final String BEGINNER = "Новичoк";
- private static final String AMATEUR = "Любитель";
- private static final String PROFESSIONAL = "Профессионал";
- MainFrame mFr;
- public Menu() {
- JMenu gameMenu = new JMenu("Игра");
- add(gameMenu);
- JMenuItem newGame = new JMenuItem("Новая Игра");
- gameMenu.add(newGame);
- newGame.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- //рестарт
- }
- });
- gameMenu.addSeparator();
- JMenuItem beginner = new JMenuItem(BEGINNER);
- gameMenu.add(beginner);
- beginner.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- //mFr.removeElements();
- mFr.setMainPanel(1);
- //new MainFrame(1);
- }
- });
- JMenuItem amateur = new JMenuItem(AMATEUR);
- gameMenu.add(amateur);
- amateur.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- //mFr.removeElements();
- mFr.setMainPanel(2);
- //new MainFrame(2);
- }
- });
- JMenuItem professional = new JMenuItem(PROFESSIONAL);
- gameMenu.add(professional);
- professional.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- mFr.removeAllElements(3);
- //mFr.removeElements();
- //mFr.setMainPanel(3);
- //new MainFrame(3);
- }
- });
- gameMenu.addSeparator();
- JMenuItem exitGame = new JMenuItem("Выход");
- gameMenu.add(exitGame);
- exitGame.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- });
- JMenu infoMenu = new JMenu("Справка");
- add(infoMenu);
- JMenuItem infoButton = new JMenuItem("Об Игре");
- infoMenu.add(infoButton);
- infoMenu.addSeparator();
- JMenuItem infoButton5 = new JMenuItem("Об Игре5");
- infoMenu.add(infoButton5);
- JMenu infoMenu2 = new JMenu("Справка2");
- add(infoMenu2);
- JMenuItem infoButton7 = new JMenuItem("Об Игре7");
- infoMenu2.add(infoButton7);
- infoMenu2.addSeparator();
- JMenuItem infoButton2 = new JMenuItem("Об Игре2");
- infoMenu2.add(infoButton2);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д