这个其实是和for(int i=0;i<100;i++)一样
第一个是初始值,第二个是循环结束的条件,第三个是达到循环结束条件的方式
而这个的意思就是初始值是定义本身,条件就是直到c为null为止,方式为得到父层对象!

解决方案 »

  1.   

    得到C的最上层父类
    如果其中一个父类如果是一个Frame的话
    就保存这个Frame的引用
      

  2.   

    对/*for(初始化;判断条件;每一步的动作)
      {
       if(c instanceof Frame)
        f=(Frame)c;  
      } */
      

  3.   

    对/*for(初始化;判断条件;每一步的动作)
      {
       if(c instanceof Frame)
        f=(Frame)c;  
      } */
      

  4.   

    这样用基本上和使用while(){...}没有区别了.
      

  5.   

    /*for(Container c=this;c!=null;c=c.getParent())
      {
       if(c instanceof Frame)
        f=(Frame)c;  
      }
    转成while可能好看一点Container c=this;
    while(c!=null){
      if(c instanceof Frame)
        f=(Frame)c;  
    c=c.getParent();
    }现在看明白了吗?
      

  6.   

    for(Container c=this;c!=null;c=c.getParent())
    不停地寻找自己上面一层的Container,直到最顶层为止。
    比如你画了一个容器,然后在容器里又加了一个,然后又加了一个。。
    更加形象的例子:
    就像你被一个脸盆套住了,这个脸盆外面又套了一个脸盆,然后外面又套了一个脸盆。你要从里面找出最外面一个脸盆一样。
    如果还不懂,建议放弃理解该语句。