この問題を自分で解決しようとしてアンドリューの提案を試みた後、これが私がしたことです。私の場合、tcp 通信を閉じている間、データをデータベースに保存しています。ウィンドウを閉じてからプログラムが実際に閉じるまでの間に、やらなければならない作業があります。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Load all data here
}
@Override public void windowClosing(WindowEvent e) {
// TODO Save the data
}
@Override public void windowIconified(WindowEvent e) {}
@Override public void windowDeiconified(WindowEvent e) {}
@Override public void windowDeactivated(WindowEvent e) {}
@Override public void windowActivated(WindowEvent e) {}
@Override public void windowClosed(WindowEvent e) {}
});