Я пытаюсь сделать игру тральщика с помощью JFrame. Я создал меню и игру в классах, которые расширили класс JPanel. Проблема в том, что когда я пытаюсь получить, когда нажата кнопка и что нажата с помощью геттера, основной класс получает только начальное значение переменной. Что мне нужно сделать, чтобы исправить эту проблему?пользователь создал jpanel getter не обновляется
класс меню
package mines;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* @author joshua
*/
public class Menu extends JPanel
{
private JButton m1, m2, m3;
private int width, height, widthOne, heightOne, choice;
public Menu()
{
choice = 0;
widthOne = 250;
heightOne = 150;
width = widthOne * 2;
height = heightOne * 2;
m1 = new JButton("Easy: 8X8 10 mines");
m2 = new JButton("Medium: 16X16 40 mines");
m3 = new JButton("Hard: 32X16 99 mines");
m1.setPreferredSize(new Dimension(widthOne, heightOne));
m2.setPreferredSize(new Dimension(widthOne, heightOne));
m3.setPreferredSize(new Dimension(widthOne, heightOne));
setLayout(new GridLayout(2, 2));
add(m1);
add(m2);
add(m3);
m1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
choice = 1;
}
});
m2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
choice = 2;
}
});
m3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
choice = 3;
}
});
}
@Override
public Dimension getPreferredSize()
{
return new Dimension(width, height);
}
public int getChoice()
{
return choice;
}
public void resetChoice()
{
choice = 0;
}
}
основной класс
package mines;
import javax.swing.*;
public class Main
{
public static void main(String[] args)
{
new Main().go();
}
public void go()
{
JFrame frame = new JFrame();
Grid grid = new Grid(1);
Menu menu = new Menu();
frame.add(menu);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
boolean done = false;
boolean menuBool = true;
while(!done)
{
if(menuBool)
{
if(menu.getChoice() != 0)
{
System.out.println("" + menu.getChoice());
grid = new Grid(menu.getChoice());
menu.resetChoice();
frame.add(grid);
}
}
else
{
if(grid.atEnd())
{
frame.add(menu);
}
}
}
}
}