0

我有一个简单的网格,可以在用户点击的任何地方放置一个正方形。网格和对窗格的访问保存在“游戏”对象中。

这有效:

private void buildClicked(int x, int y) {
    panel.repaint();
    game.buy(x, y);
}

这不会触发重绘:

private void buildClicked(int x, int y) {
    game.getPanel().repaint();
    game.buy(x, y);
}

如果我将面板设为 Game 的公共变量,这也不起作用:

private void buildClicked(int x, int y) {
    game.panel.repaint();
    game.buy(x, y);
}

“getPanel”只返回顶部的“panel”对象所指的同一个自定义面板对象。

我想将面板包含在游戏对象包装器中。同样,在“购买”函数中调用重绘函数也不起作用。

为什么上述示例中的“重绘”功能表现不同?

4

1 回答 1

1

我的问题下的评论完全正确。我一直在 Game 对象和窗口本身中分别声明面板。另一个陷入新材料并错过基本内容的案例。谢谢!

于 2011-03-02T14:40:53.237 回答