带有WindowListener的JDialog-未触发windowClosing [英] JDialog with WindowListener - windowClosing not fired

查看:105
本文介绍了带有WindowListener的JDialog-未触发windowClosing的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个扩展JDialog的类,该类具有窗口侦听器:

I have a class that extends JDialog that have a window listener:

class MyClass extends JDialog {

     public MyClass() {
         setDefaultCloseOperation( JDialog.DO_NOTHING_ON_CLOSE );
         addWindowListener( new WindowAdapter() {

                @Override
                public void windowClosing(WindowEvent e) {
                    System.out.println("closing...");
                    //do something...
                }

            });
     }

}

当我单击X按钮时,什么也没有发生.而且我看不到正在关闭..."的字样

When i click in the X button, nothing happens. And I don't see the print of "closing..."

我想念什么?

推荐答案

为我工作.另请参见此相关的示例.

Works for me. See also this related example.

import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JDialog;

class MyClass extends JDialog {

    public MyClass() {
        setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
        addWindowListener(new WindowAdapter() {

            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("closing...");
                //do something...
            }
        });
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                MyClass m = new MyClass();
                m.setVisible(true);
            }
        });
    }
}

这篇关于带有WindowListener的JDialog-未触发windowClosing的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆