Как предотвратить задержку при использовании слишком большого количества краски - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь сделать небольшую игру, самолет взлетает, и когда я нажимаю стрелку вниз, он сбрасывает бомбу.Если бомба попадает в цель, она меняет свое место и т.д.другая тема об использовании таймера, но я не хочу решать его с таймером, и даже я не знаю, смогу ли я.Интересно, речь идет о моем компьютере или ide.

1 Ответ

3 голосов
/ 19 марта 2019

Прежде всего, не Override paint() метод. Override paintComponent(Graphics g) метод (и не забудьте вызвать super.paintComponent(g).

Во-вторых, использование метода Thread.sleep() в EDT (надеюсь, вы запускаете приложение, используя SwingUtilities#invokeLater) - плохая идея, так как все события прекратятся (с несколькими словами, весь GUI будет зависать).

Вы должны использовать вместо этого Таймер свинга .

Наконец, не вызывайте repaint() внутри paintComponent, потому что repaint() снова вызовет paintComponent, и это будет бесконечный цикл. Вам следует перекрасить компонент в слушателе действия Timer.

...