我有两个在同一包下的类,想在b类中调用this.dispose把由a类建立的一个窗口关闭。。应该怎么写。。this.dispose不能在b类下执行 
this.dispose();中的this代表什么

解决方案 »

  1.   

    this代表的是当前对象.问题说的不够详细.我只能根据猜测回答你问题了如果a类是一个是直接继承window或它的子类,那在b类用a.dispose(),就可以关闭,public class ADialog extends JDialog{
            //自己关闭窗口的方法
            public void closedByItSelf(){
                this.dispose();//其实不需要this,直接用dispose也能关闭
            }
            
        }
        
        //通过B关闭ADialog,
        public class B{
            public void closedA(ADialog a){
                a.dispose();
            }
        }
      

  2.   

    要在b类引用a类有两种方法;
    1.把a对象传个b对象,
    2.把a对象作为static对象(静态对象)如果还不明白,请把代码粘上来,我帮你看看,等你回复
      

  3.   

    代码好多的主要意思就是。。我在a类中打开了一个窗口。。然后想在b类中用dispose()关闭那个窗口。对象怎么传?
      

  4.   

    实现的方法很多,但要看你的代码才能决定用什么方法好
    如果你的a类为A , b类为B
    最简单的是在b类加一个方法,如下
    public class A{
      public void createADialog(){
        JDiaog a=new JDialog();
        BDialog.setADialog(a);
      }
    }public class B{
      private static ADialog a;
      public static void setADialog(ADialog a){
        this.a=a;
      }  public void closeADialog(){
        a.dispose();
      }}
    然后在a类创建实例时调用上面的方法,就可以把a类实例传给b,最后执行closeADialog();如果实在不明白,你还是加我Q:404074031,把代码发我看好了