gpt4 book ai didi

java - 访问另一个类的 Swing 组件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:54 28 4
gpt4 key购买 nike

我有两个类 gameWindowgameEngine。 Main 方法位于 gameWindow 类中,swing GUI 代码也是如此。现在,我想访问 gameEngine 中的 swing 组件。怎么做?当我正常尝试时,我总是遇到 cannot find symbol 错误。我试过公开这些组件,但没有成功。

此外,我尝试创建一个 gameWindow 实例,但它也没有帮助。它编译没有任何错误,但我遇到了一个很大的运行时错误(我什至看不到,命令提示符滚动到它的极限)。

求救!!

P.S.:我不认为在这里发布代码会有帮助。

最佳答案

为了在 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 听起来好像错误的类对错误的事情负责。也许您可能会尝试使用某种观察者,以便 GameWindow 查找 GameEngine 中的更改,然后访问更新并相应地修改 View 。所以 GameEngine 不必访问 GameWindow 的 swing 组件。

关于java - 访问另一个类的 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4089532/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com