对于版主:请参阅此答案的评论:stackoverflow.com/a/16388697/1574975
我试图检测用户何时使用带有 GUI 的客户端程序完成,以便当他们关闭 JFrame(例如通过 Xing 它)时,我可以关闭套接字连接。
但是当用户关闭 JFrame 时,我无法做任何事情。我被告知我需要将 WindowListener 与我的 JFrame 一起使用,但它似乎不起作用。我的类扩展了 JFrame,这里是设置 JFrame 的构造函数的一部分:
this.setContentPane(pane);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setVisible(true);
final JFrame thisFrame = this;
thisFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
System.out.println("User has closed window");
}
});
}
里面的 println 没有被打印出来,这就是我认为它不起作用的原因。我做得对还是需要做一些额外的事情?