问题确实很有意思。我弄了半天也没有弄清楚原因。不过碰到了个解决方案。
希望有人能作出解答private void draw(Graphics g,Color c,int x,int y,int ilen,double angle){
    int CurrentX;
    int CurrentY;
    CurrentX=(int)(x+ilen*Math.sin(angle));
    CurrentY=(int)(y-ilen*Math.cos(angle));
    g.setColor(c);
    g.drawLine(x,y,CurrentX,CurrentY);
    //System.out.println(x+","+y+","+CurrentX+","+CurrentY);
    //g.drawString("*",CurrentX,CurrentY);
    g.drawOval(CurrentX-5,CurrentY-5,10,10);//加上这一句就可以正常工作了
  }