0
我有一個簡單的網格,無論用戶單擊哪個位置都放置一個正方形。網格和對窗格的訪問都保存在「遊戲」對象中。在Java中重繪與容器擺動
這工作:
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);
}
如果我做面板遊戲的公共變量,這不起作用或者:
private void buildClicked(int x, int y) {
game.panel.repaint();
game.buy(x, y);
}
「getPanel」只返回頂部的「面板」對象所指的相同的自定義面板對象。
我想在遊戲對象包裝中包含面板。同樣,在「購買」功能中調用repaint函數不起作用。
爲什麼在上面的例子中「repaint」函數的行爲不同?
你確定'panel == game.getPanel();' - 如果有一個自定義對象,確保你不重寫任何你不應該的東西。 – 2011-03-01 21:54:27
同意,您可能會遇到誤解引用的問題 - 您認爲引用可見組件的變量實際上不是。儘管只是提供了一小段代碼,但很難說清楚。 – 2011-03-02 01:24:24