import java.awt.*;
import java.util.*;class ClockCanvas extends Canvas
{
Graphics gsec; ClockCanvas()
{
setSize(500,500);
setBackground(Color.cyan);
gsec=this.getGraphics();
gsec.translate(250,250);
}
}
执行的时候总是说gsec.translate(250,250);这句有问题,说是NullPointerException。换成别的对gsec进行操作的语句都是一样的错误。请问这样初始化有什么问题吗?

解决方案 »

  1.   

    有点问题,graphics的生命周期有些特殊,在这里做是有点问题的,把这些代码放到paint中,使用paint中的graphics是没有问题的,具体Graphaic的生命周期我也讲不明白...
      

  2.   

    同意楼上的看法 使用paint(Graphics g)paint(Graphics g)
    {
    g.gsec.translate(250,250);
    }
    然后在ClockCanvas类中调用 repaint()