import java.awt.*;
import java.awt.event.*;
public class TestWindowClose{
public static void main(String [] args){
new MyFrame("aaaaa");
}
}class MyFrame extends Frame{
MyFrame(String s){
super(s);
setSize(300,300);
setLocationRelativeTo(null);
setLayout(null);
setVisible(true);
addWindowListener(new MyMonitor());
}
}
class MyMonitor extends WindowAdapter{
public void windowClosed(WindowEvent e){
//setVisible(false);
System.exit(-1);
}
}

解决方案 »

  1.   

    class MyMonitor extends WindowAdapter {
        @Override
        public void windowClosing(WindowEvent e) {
            // setVisible(false);
            System.exit(-1);
        }
    }不是windowClosed  是Closing按照单词的意思来例假Closed是监听关闭成功以后的事件了,是过去式
      

  2.   

    是‘来理解’。。打错字了。。其实楼主,你自己再定一个MyMonitor 类实际上意义并不大,WindowAdapter 作为一个适配器类来使用,本身就是为了避免因为实现接口而导致需重写接口中定义的所有的方法。代码看起来并不是很乱。 addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent we) {
                    System.exit(-1);
                }// End windowClosing
            });
      

  3.   

    楼上说的对,应当重写是windowsClosing方法