package myprojects.hellojava;import java.awt.*;
import java.awt.event.*;class HelloJava extends Frame {
*************************************************************
public HelloJava() {//定义个方法
addWindowListener(new WindowAdapter() {//增加一个窗口事件监听器
public void windowClosing(WindowEvent e) {//监听窗口是否关闭
dispose();//假如扑获窗口关闭的事件调用次方法
System.exit(0);//程序正常退出
}
});
}
*************************************************************
public static void main(String args[]) {
System.out.println("Starting HelloJava...");
HelloJava mainFrame = new HelloJava();
mainFrame.setSize(400, 400);
mainFrame.setTitle("HelloJava");
mainFrame.setVisible(true);
}
}

解决方案 »

  1.   

    /addWindowListener()增加一个窗口事件监听器
    //new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose();//假如扑获窗口关闭的事件调用次方法 System.exit(0);//程序正常退出 }}// 为实例一个窗口适配器//窗口适配器和窗口监听器不同,前者,你只需要实现你需要的方法就可以了。而你要是用后者,就必须实现里面的所有方法。
      

  2.   

    我特别想问一下,addWindowListener是不是一个方法?如果是,以下代码:
    new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    dispose();
    System.exit(0);
    }
    }
    是不是addWindowListener的参数?
    请就以上代码做一下详细说明!
    to: wjmmml(笑着悲伤) 
    也可以说public HelloJava()是个构造函数吧!
      

  3.   

    如果是想直接结束程序,dispose()方法可以不用,如果是只想关闭窗口,exit()可以不用。class HelloJava extends Frame {    //继承Frame
    *************************************************************
    public HelloJava() {     //定义构造器
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {    //定义窗口关闭时调用的方法
    dispose();//释放窗口所占资源
    System.exit(0);//程序终止
    }
    });
    }
    *************************************************************
    public static void main(String args[]) {
    System.out.println("Starting HelloJava...");//在控制台输出
    HelloJava mainFrame = new HelloJava();//实例化一个HelloJava对象
    mainFrame.setSize(400, 400);//设置窗口尺寸
    mainFrame.setTitle("HelloJava");//设置窗口标题
    mainFrame.setVisible(true);//显示窗口
    }
    }
      

  4.   

    powerbu(变) 问的也正是我想问的!先谢谢楼上各位的回答,大家继续......
      

  5.   

    addWindowListener是增加监听器的方法,而
    new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    dispose();
    System.exit(0);
    }
    }
    是一个匿名内部类,你也可以单独建立一个内部类,然后实现WindowClosing方法,如
    class CloseMyWindow implements WindowAdapter
    {
         public void windowClosing(WindowEvent e) 
        {
    //dispose();
    System.exit(0);
         }
    }然后用addWindowListener(new CloseMyWindow())调用。
    最好的了解资料《Think in Java〉第一版第七章。
      

  6.   

    没错啊!
    是个方法啊!
    我们可以这样理解啊:WindowListener listener=...........;
    frame.addWindowListener(listener);WindowListener里面有七个方法啊!
    XOpened,XClosing,XClosed,XIconified,XDeiconified,XActivated,XDeactivated;
    WindowAdapter()设配器 只要继承一个就可以的啊!呵呵,个人之见!
      

  7.   

    addWindowListener()当然是一个方法了,是一个增加监听器的方法。
    WindowAdapter()设配器 方便之处,就是你只需要实现你需要的方法。而监听器必须实现里面的所有方法后,才能用。
      

  8.   

    addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            dispose();
            System.exit(0);
        }
    }new WindowAdapter() {...}
    是匿名内部类,请查阅Java书的相关章节。