请大伙们留步 帮我解决一个问题,谢谢了。窗体A 中有个按钮,当点击按钮时候 窗体B 弹出来,我们将用户信息填入,然后确认后,点击B窗体右上方的关闭按钮,我只希望窗体B 关闭,同时刷新窗体A,但是我实现不了,当我点击窗体B上的关闭按钮是,窗体A一起关闭。我的代码是
A中按钮事件
 JFrameb pm = new JFrameb();
 pm.setVisible(true);B
  关闭操作
  利用监听器
   this.addWindowListener(new WindowAdapter() {
            
            public void windowClosing(WindowEvent e) {
                 System.exit(0);//我觉得问题出在这里,我关闭了整个的窗体,试问怎么改变B的窗体
                }
                 });

解决方案 »

  1.   

    System.exit(0);会将整个程序退出的。
    1.点击B窗体右上方的关闭按钮,我只希望窗体B 关闭,同时刷新窗体A
    B中的窗体关闭监听应该这么写
    this.addWindowListener(new WindowAdapter() { 
         public void windowClosing(WindowEvent e) {            
               dispose();      
                 //同时刷新窗体A
              窗体A对象.repaint();
          
    } });public void dispose()的注释
    释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。 
    通过随后调用 pack 或 show 重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的 Window 及其子组件的状态与释放 Window 时这些对象的状态一致(不考虑这些操作之间的其他更改)。 注:当 Java 虚拟机 (VM) 中最后的可显示窗口被释放后,虚拟机可能会终止。
    2.当我点击窗体B上的关闭按钮是,窗体A一起关闭
    在点击窗体B上的关闭按钮的事件监听中写
      System.exit(0);