Я работаю над простой игрой на Java с графическим интерфейсом (пожалуйста, проверьте приложение). Я создал 4 класса, 3 класса создали 3 разные панели (красная, зеленая и желтая), а 4-й класс объединяет их в один фрейм.Теперь мне нужно после нажатия кнопки «Играть в игру» сбросить, заново открыть весь кадр, делая новый сеанс для игрока.На данный момент мне удается создать совершенно новый фрейм MainFrame, но старый остается, есть ли шанс исправить это без полного изменения структуры моего кода GUI?Я пробовал разные методы, но, поскольку мне не хватает опыта, ни один из них не работал.
Снимок экрана GUI: https://photos.app.goo.gl/FbpZUpGX125j7R3c9
код основного кадра:
public class MainFrame extends JFrame{
private JFrame frame = new JFrame("No name at the moment");
public MainFrame(){
frame.setSize(840, 220);
frame.setLayout (new GridLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
makeFrame();
}
public void makeFrame(){
frame.add(new PanelA());
frame.add(new PanelB());
frame.add(new PanelC());
}
Икласс PanelB с кнопкой прослушивания:
public PanelB()
{
setLayout (new GridLayout());
setBackground(Color.GREEN);
setVisible(true);
makePanelB();
}
public void makePanelB()
{
JButton buttonPlayAgame = new JButton("Play a game");
buttonPlayAgame.addActionListener(source -> new MainFrame() );
JButton buttonExit = new JButton("Exit");
buttonExit.addActionListener(source -> System.exit(0));
add(panelB);
panelB.add(buttonPlayAgame);
panelB.add(buttonExit);
panelB.add(outputMessage, new FlowLayout());
panelB.setBackground(Color.GREEN);
}