java - windowClosing() 方法没有被调用

标签 java swing event-handling awt windowlistener

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()

get 调用的方法是 windowClosing()

最好的建议是使用 @Override 注释您的方法,以便编译器知道您想要重写方法,并且如果您的方法不重写父类(super class)方法,则可以生成错误消息:

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

关于java - windowClosing() 方法没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61401974/

相关文章:

Java自定义注释默认值等于类字段名称

java - 在方法中写入数组

java - 如何将 mouseClicked 事件添加到 Swing 表?

java - 单击按钮后如何更改 JTable 行的颜色

javascript - 将数据返回给调度事件的组件

java - Java 中的 "repeat"结构

java - 想要从 JList 中获取选定的索引。但返回-1

Java - 俄语字符串和 JTextField,将字符串更改为 "????..."

c# - 无法将 Action<object, EventArgs> 转换为 EventHandler?

javascript - 如何在事件处理程序中执行 map() 函数