我是这样理解的:f是SimpleFrame的一个对象,是一个局部变量,所以同名也不要紧。

解决方案 »

  1.   

    每次点击都生成一个SimpleFrame的实例
      

  2.   

    正如
    for(int i=0;i<10;i++)
    {
      int j = 0; // 为什么可以起相同的名!
      
    }
      

  3.   

    就是这样:
    int dd(){
    int m;
    }
    int dd(){
    int m
    }
    这样编译可以通过运行
      

  4.   

    up错了,呵呵
    就是这样:
    int aa(){
    int m;
    }
    int dd(){
    int m
    }
    这样编译可以通过运行 
      

  5.   

    SimpleFrame f = new SimpleFrame();//就是这里!new SimpleFrame()应该没有问题吧?问题可能实在f。正如
    上面所说,f是一个方法变量/local变量,位于actionPerformed方法
    (一般来说是通过implements java.awt.ActionListener得来的),
    进入该方法后,f被创建,方法退出后,f所代表的对象失去引用,被
    GCed)即使考虑到多线程,f也是位于不同的“空间内”,不会矛盾
      

  6.   

    SimpleFrame f = new SimpleFrame();//就是这里!
     每次产生一个实例,每个f 作为临时变量,其作用域仅限于ActionPerformed(ev)方法。
    但其引用的SimpleFrame实例因为在f.show()时被系统引用而不会被回收,直到窗口被关闭。