swing 子窗口关闭时刷新父窗口

来源:互联网 发布:linux mint18不能安装 编辑:程序博客网 时间:2024/05/18 01:33

基本原理是这样的:

1、在父类中定义一个刷新父窗口内容的方法;

2、在父窗口中打开子窗口时,将父窗口的实例也传给子窗口;

3、子类中创建一个父类实例的属性,在子类在构造方法中用此属性接受传过来的父类实例;

4、子窗口关闭时,调用父类中的方法,实现对父窗口内容的刷新。

说明:本方法不包括从子窗口向父窗口回传值 !

具体代码如下:

父类:

1、父类中写一个刷新方法,我随便写一个:

public void showTree()
    {

……

}


2、假如父类名为: mainFrame,在父类中打开子窗口的方法

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) // 这是一个菜单事件,点击它可以弹出子窗口
    {
      
            upload2 son= new upload2(this); // 这里的this 就是指当前父类的实例,
            son.setVisible(true); //子窗口可见

    }


子类:

3、创建父类实例属性:

private mainFrame a = null;


在子类的构造方法中,将父类传递过来的实例赋给在子类创建的父类实例:

public upload2( mainFrame father)
    {

this.a=father;

}

4、在子窗口关闭方法中,通过父类的实例,调用父类中刷新父类窗口内容的方法showTree():

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) //在子窗口中,点击关闭按钮后,执行此方法
    {
        this.a.showTree();// 调用父类的刷机方法
        this.dispose();// 关闭子窗口
    }

1 0