我有两个类gameWindow
和gameEngine
。 Main方法在gameWindow
类中,swing GUI代码也在其中。现在,我想访问gameEngine
中的swing组件。怎么做?正常尝试时,我总是会收到cannot find symbol
错误。我曾尝试将组件公开,但没有运气。
另外,我尝试创建gameWindow
实例,但它也没有帮助。它编译时没有任何错误,但是我遇到了BIG运行时错误(我什至看不到,命令提示符滚动到它的极限)。
RELP!
附注:我认为在此处发布代码不会有帮助。
最佳答案
为了访问gameEngine中的gameWindow组件,您需要对其进行引用。因此,我假设GameWindow类创建GameEngine的实例。然后,您可以执行以下操作:
public class GameEngine{
GameWindow window;
public GameEngine(GameWindow gm){
window = gm;
}
//rest of your code
}
public class GameWindow(){
//At the point where you create the GameEngine
GameEngine ge = new GameEngine(this);
//rest of your code
}
现在,GameEngine可以使用它对GameWindow的引用。
话虽如此,我建议您考虑使用其他设计。让GameEngine直接访问GameWindow听起来像是由错误的类负责处理错误的事情。也许您可以尝试使用某种Observer,以便GameWindow在GameEngine中查找更改,然后访问更新并相应地修改视图。因此,GameEngine不必访问GameWindow的swing组件。