我需要有关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);
}
}
对不起,我的英语不好,如果我的代码看起来很愚蠢,对不起,我是初学者。
最佳答案
您编写了无休止的递归,因为:repaint
呼叫paint
,后者呼叫repaint
,呼叫paint
,...
您陷入了重画循环,因此图像闪烁。