Как закрыть один 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);
}
}