重绘功能

时间:2014-08-13 16:35:10

标签: java swing graphics repaint

我需要一些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);
    }
}

抱歉我的英语不好,如果我的代码看起来很愚蠢,我很抱歉,我是初学者。

1 个答案:

答案 0 :(得分:2)

你写了一个无休止的递归,因为:

repaint调用paint,调用repaint,调用paint,...

你陷入了重复循环,因此图像闪烁。