首页 > 解决方案 > windowClosing() 方法没有被调用

问题描述

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()甚至没有被调用。

标签: javaswingevent-handlingawtwindowlistener

解决方案


你命名了你的方法WindowClosing()

然而,get 调用的方法是windowClosing().

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

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

推荐阅读