import javax.swing.*;
import java.awt.event.*;

public class Test  {

    Test() {
        JFrame f=new JFrame("CloseIt");
        f.setVisible(true);
        f.setSize(400,200);
        f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        f.addWindowListener(new WindowAdapter(){
            public void WindowClosing(WindowEvent e)
            {
                System.out.print("In Windowclosing opr");
                f.dispose();
            }
        });
    }

    public static void main(String arg[]) {
        Test t=new Test();
    }
}


我实际上想问用户在关闭文件之前是否要保存文件。
但是每当我关闭框架(十字按钮)时,都不会发生任何事情。
windowClosing()甚至没有被调用。

最佳答案

您将方法命名为WindowClosing()

但是,被调用的方法是windowClosing()

最好的建议是使用@Override注释方法,以便编译器知道您要覆盖方法,并且如果您的方法未覆盖超类方法,则可能会产生错误消息:

    f.addWindowListener(new WindowAdapter(){
        @Override
        public void windowClosing(WindowEvent e)
        {
            ...
        }
    });

10-01 14:35