刚才编程序的时候发现一个问题,例如
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test
{
public Test() 
{
JFrame f = new JFrame();
f.setSize(300,300);
f.setVisible(true);

                f.addWindowListener(
                       new WindowAdapter()
                         {
                           public void WindowCLosing(WindowEvent e)
                           {
                               System.exit(0);
                             }
                        });
           }
                 public static void main(String args[])
                  {
                     new Test();
                  }
}
但是如果代码中没有 f.addWindowListener(
                       new WindowAdapter()
                         {
                           public void WindowCLosing(WindowEvent e)
                           {
                               System.exit(0);
                             }
                        });
窗口关闭的效果一样,而用Frame窗口中就一定要进行处理,那样是否可以不用处理关闭窗口事件呢?但在看很多人的代码是都是有处理的,请问两者有什么分别,求高手指点~

解决方案 »

  1.   

    JDK默认的对于关闭按钮的相应只是将窗口隐藏而不是关闭,这个我也不明白Java开发者团队是怎么想的,可以加一句改变他的默认事件,这样就不用addWindowListener那么麻烦.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      

  2.   

    frameName.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );// most time we can use thisaddWindowListener() // we can do many other things, such as update:)
      

  3.   

    如果要註冊一個窗口監聽器監聽來自JFrame的窗口事件,要記得在JFrame是構造函數中調用
    setDefaultCloseOperation方法.
    因為即使存在窗口監聽器,setDefaultCloseOperation方法的設置仍然起作用.
      

  4.   

    假如用的是jbuilder 你关闭窗口 不加这段关闭的代码 会发现  程序还在运行 只是窗口隐藏了而已   加了以后会发现程序结束