我需要有关 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
,...
您陷入了重绘循环,因此图像闪烁。
关于java - 重画功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25291568/