public void paint(Graphics g)
  {
    int x = 0;
    int y = 0;
...
}
就可以了
    

解决方案 »

  1.   

    在java中类一级的变量在定义的时候是有默认值的,而方法中定义的变量是没有默认值的。虽然你有x=(int)(java.lang.Math.cos(angle)*100)+120;
          y=(int)(java.lang.Math.sin(angle)*100)+120;
    但编译器只会检查你是否已经初始化了。
      

  2.   

    同意楼上的观点,就是没有赋值,有时候不光int有此类现象,String,Obj等都有,
    int x=0;
    int y=0;
      

  3.   

    谢谢各位了!我试了一下,如果我在painnt()函数中申明这两个变量之后马上就赋值的话,编译是通过的。但是如果我把x=0;y=0;放到while循环中的最前面就又不行了,还是同样的错误提示。这是为什么呢?
      

  4.   

    x=0;y=0放在循环中时,编译器会认为循环可能不执行——x,y可能没有初始化,因而它会提示你的变量需要初始化
      

  5.   

    同志注意:
    double angle=0;
    x=(int)(java.lang.Math.cos(angle)*100)+120;
    可能有问题,cos(angle)是无穷大,会出错的