java - Java 中退出 JFrame 和 TCP 通信之前关闭资源

标签 java jframe netbeans-6.9 serversocket

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/

相关文章:

java - (Object) 在java中做什么?

java - 如何在 java 中均匀调整 JFrame 的大小以使其保持其方形

java - 如何使用 KeyListener 移动 JFrame 中的矩形?

java - Android,从代码调用 View 对象

java - elasticsearch-rest-high-level-client vs elasticsearch-rest-client

java - InputStreamReader 并从 .txt 文件中读取随机行

java - setVisible() 方法在静态方法中不起作用

java - NetBeans/Tomcat部署问题

java - 如何处理JTable数据改变事件

tomcat - 在 Netbeans 6.9 中,如何更改应用程序服务器