Как закрыть один 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д