在我正在构建的应用程序中,到目前为止,我有三个用户界面类。我有一个FrameGUI类,它扩展了JFrame,并作为我创建的另外两个类的容器:StartScreenGUI和MainGameGUI - 两者都扩展了JPanel并根据接口的工作保存不同的按钮。
FrameGUI(非常简化的版本):
class FrameGUI extends JFrame
{
private Container contentPane;
private StartScreenGUI screenFirst;
private MainGameGUI gameScreen;
public FrameGUI()
{
gameScreen = new MainGameGUI();
screenFirst = new StartScreenGUI();
contentPane.add(screenFirst);
}
public void swapScreen(MainGameGUI gameScreen)
{
contentPane.remove(screenFirst);
contentPane.add(gameScreen);
}
}
问题是,在StartScreenGUI类中有一个按钮继续,单击时我想调用swapScreen方法,以便用户可以进入下一个屏幕。但是它无法访问该方法,因为它不“意识到”main方法中定义的FrameGUI类的实例。
有没有办法绕过这个或者我可以采取的完全不同的方法,那会更好吗?如果可能的话,我希望避免使用多个帧,并在完成时关闭最顶层的帧。