我正在制作一款将实施三款游戏的游戏。我从一个类开始编写代码,现在我想将其转换为MVC格式,但出现错误。我从编写GameView类中的所有代码开始,现在我想将一些代码从此类移至SView类。问题是我已经在GameView类中初始化了JFrame,当我将代码移到SView类时它找不到变量框架。因此,我被告知将其放入面板中然后将其移动,但这只是弄乱了我的游戏。

最佳答案

您必须以不同的方式组织事情。要考虑的一些事情:


GameView是您的主窗口吗?设为GameView extends JFrame
SView是面板吗?设为SView extends Panel


要考虑的另一件事:SView是要添加到GameView的某些面板,但是SView添加自身不是责任。相反,只需在这两个类之外的某个地方实例化并组装这些组件,例如:

GameView gameView = new GameView();
gameView.add(new SView());


您也可以GameView在其构造函数代码中添加new SView()

无论如何,这里的要点是,组件不应该将自己添加到其父项中,而只需要创建自己的内容/子项。

祝好运。

10-07 13:27