有没有办法可以将JPanel类交换进JFrame?

时间:2016-02-24 17:18:01

标签: java swing

在我正在构建的应用程序中,到目前为止,我有三个用户界面类。我有一个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类的实例。

有没有办法绕过这个或者我可以采取的完全不同的方法,那会更好吗?如果可能的话,我希望避免使用多个帧,并在完成时关闭最顶层的帧。

0 个答案:

没有答案