检查我的窗口侦听器是否工作



我想看看我的窗口侦听器是否在工作。我希望在我调用windowClosed方法中的dispose之前在控制台中打印出一条消息,但它不打印任何东西。我真的不确定我是否做错了什么——有办法检查吗?

    public class MyClass extends JFrame {
    . . . 
             this.addWindowListener(new WindowAdapter() {
             @Override
             public void windowClosed(WindowEvent e) {
                 System.out.println("I'm in the listener");
                 dispose();
             }
        });
    . . .
}

我认为您需要windowClosing,它在用户试图关闭窗口时被调用。在窗口被处置之后,windowClosed被称为,因此尝试从那里处置它是没有意义的。

windowClosing始终处于发射状态。
当您使用:

时,windowClosed将被触发。
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

但是重写的方法应该是这样的,

           @Override
           public void windowClosed(WindowEvent e) {
               System.out.println("I'm in the listener");
               System.exit(0);
           }
      });

这里你不能使用dispose()方法,因为这个方法将在框架被处置后被调用。如果dispose()方法被调用,那么这将使windowClosed()方法无限执行。

相关内容

最新更新