1. 我正在编写一个基于 TCP 通信的聊天应用程序。 我正在使用 NetBeans,我想在退出 JFrame 时向默认的 EXIT_ON_CLOSE 添加功能。 原因当然是因为我想清理资源并安全地结束线程。 如何调用一个方法来清除资源,然后安全地关闭 JFrame 并结束进程。
2. 我需要实现服务器端。服务器有“Socket”的列表/ HashMap /队列及其聊天昵称。是否有任何简单的设计模式可以正确完成它,因为我不想重新发明轮子。
谢谢。
最佳答案
在尝试了安德鲁的建议并尝试自己解决这个问题之后,这就是我所做的。就我而言,我将数据保存到数据库,而您则关闭 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) {}
});
关于java - Java 中退出 JFrame 和 TCP 通信之前关闭资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689807/