import java.awt.*;
import java.awt.event.*;
public class WindowEvent
{
     public static void main(String argv[])
     {
          Frame f=new Frame("window event text");
          f.addWindowListener(new WindowEventHandler());
          f.setSize(400,300);
          f.setVisible(true);
      }
}
class WindowEventHandler extends WindowAdapter
{
     public void windowClosing(WindowEvent e)
     {
          System.out.println("window closing event");
          System.exit(0);
     }
}
为什么按了红叉仍然关不掉窗口?

解决方案 »

  1.   

    是这样的:public class WindowEvent,这个你自己定义的类覆盖了原来的WindowEvent,所以在
    public void windowClosing(WindowEvent e)中WindowEvent 已经不再是你期望的WindowEvent 了,把名字改成WindowEvent123即可 
      

  2.   

    你的类名和java.awt.event.WindowEvent冲突了。换个类个,或者把方法改为:public void windowClosing(java.awt.event.WindowEvent e) { ... }
      

  3.   


       把类名改了还是不行啊。
       方法改了倒是可以(public void windowClosing(java.awt.event.WindowEvent e))!
       知道为什么改名不行吗?
       谢谢楼上的帮助啊!
      

  4.   

    你原来名字的类已经编译过了,class文件已经存在,你没有删除它,所以类名冲突还是存在的,找找当前目录下是否有WindowEvent.class文件,把它删掉。
      

  5.   

    eclipse不会出现这个问题,类名改了会把以前的那个.class给删了