你必须覆盖paintcomponent方法,然后才能够调用
getgraphics方法,否则就会出现错误

解决方案 »

  1.   

    当然如果你是在事件中添加了画线的
    操作不会出现类似的情况。画线操作直接
    可以使用你drawbackground中的方法。
      

  2.   

    Canvas中也要覆盖paintComponent()方法?
      

  3.   

    上面这个问题我搞定了,不可以在构造函数中调用drawBackground();
    在main()中调用就可以运行了,但还有一个新问题了。。public void drawBackground()
    {
    Graphics g = gameCanvas.getGraphics();
    g.setColor(Color.RED);        
    g.fillRect(0, 0, 20, 20); 
             //上面这些代码能正常运行了
             background = Toolkit.getDefaultToolkit().getImage("background.gif");
    g.drawImage(background, 0, 0, this);
             //但我上面想在canvas上把图像画上去却不行,画方块成功了。
             //background.gif存在
    }