Мне нужна помощь с функцией repaint (). Когда я запускаю программу, она создает эффект мигания изображения. Что случилось?
public class Game extends JFrame {
private static final long serialVersionUID = 1L;
public Game() {
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(Toolkit.getDefaultToolkit().getImage("Images/bg.jpg"),0,0,this);
g.drawImage(Toolkit.getDefaultToolkit().getImage("Images/player.png"),0,448,this);
repaint();
}
public static void main(String[] args) {
Game langas = new Game();
langas.setSize(900,550);
langas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
langas.setTitle("Best Game EVER! LOL");
langas.setVisible(true);
langas.setLocationRelativeTo(null);
langas.setResizable(false);
}
}
Извините за мой плохой английский и извините, если мой код выглядит глупо, я новичок.
0
Tadas
13 Авг 2014 в 20:35
1 ответ
Лучший ответ
Вы написали бесконечную рекурсию, потому что:
repaint
вызывает paint
, который вызывает repaint
, который вызывает paint
, ...
Вы попали в цикл перерисовки, поэтому изображение мерцает.
2
blueygh2
13 Авг 2014 в 20:40
Ох ... Теперь я это понимаю. Спасибо :).
– Tadas
13 Авг 2014 в 20:44
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
paintComponent()
вместо того, чтобы переопределятьpaint()
." - Рисование в AWT и Swing: методы рисования .