У меня есть простая сетка, которая помещает квадрат везде, где пользователь нажимает. Сетка и доступ к панелям хранятся в объекте «Игра».
Это работает:
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» просто возвращает тот же пользовательский объект панели, на который ссылается объект «панели» верхнего элемента.
Я бы хотел разместить панель в обёртке объекта Game. Аналогичным образом, вызов функции перерисовки внутри функции «buy» не работает.
Почему функция «перекрасить» ведет себя по-разному в приведенных выше примерах?