Причина в том, что в строке g.fillRect(0,0,WIDTH,HEIGHT);
она фактически ссылается на java.awt.image.ImageObserver#WIDTH
и java.awt.image.ImageObserver#HEIGHT
вместо ваших переменных экземпляра. Вы можете увидеть это с помощью любой IDE.
Из-за этого ожидаемый черный фон нарисован только в области 1x2 пикселей в верхнем левом углу. И поскольку комментарий к super.paint(g);
закомментирован, даже серый фон не перекрашен. В результате старые чертежи автомобиля не перегружены.
Код нужно изменить, чтобы использовать MAP.this.WIDTH
, или поле WIDTH
необходимо переименовать в то, что не конфликтует с поля, унаследованные от JPanel, или поле должно быть перемещено в тот же JPanel, чтобы иметь более высокий приоритет, или вы также можете использовать метод getWidth()
из JPanel. А также для высоты.