我想看看我的窗口侦听器是否在工作。我希望在我调用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()
方法无限执行。