首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

寨子QQ项目窗口处理

2012-10-29 
山寨QQ项目窗口处理?一 、 各大窗口界面的线程跟踪处理?1列表窗口:在登录界面登录成功后,显示聊天在线好友

山寨QQ项目窗口处理

?

一 、 各大窗口界面的线程跟踪处理

?

1 列表窗口:在登录界面登录成功后,显示聊天在线好友列表窗口,再启动一个通信模块线程来跟踪该客户。

?

2 聊天窗口:当在好友列表中选择一个好友单聊或进行群聊时,就会出现一个专门与你选择的对象聊天 的窗口(像QQ那样的)为了实现这个步骤,我将该显示该聊天界面的类继承了Runnable,每打开一个聊天窗口,就启动一个小线程来处理在该天界面发生的事件。这样就可以同时单独和几个好友聊天,群聊时,好友也可以群聊窗口里一起聊天。

?

二、Runnable 为非 Thread 子类的类提供了一种激活方式。通过实例化某个 Thread 实例并将自身作为运行目标,就可

以运行实现Runnable 的类而无需创建 Thread 的子类。大多数情况下,如果只想重写 run() 方法,而不重Thread法,那么应使用 Runnable 接口。

?

如果窗体继承Runnable接口,类必须定义一个run()方法。


三、关闭窗口处理

?

1.登录成功后,打开好友列表窗口,关闭登录窗口

?

2.关闭好友列表窗口,该用户下线。这需要给该窗口加窗口监听器WindowListener。

?

此时,利用WindowAdapter,可以省掉不用方法。

?

f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){String s="下线了!";conn.sendMsgAll(user, s,"off");//发生下线消息conn.closeClient();//调用方法,关闭服务器连接对象}});
?

3.关闭聊天窗口,有两点要注意:

?

(1) 用setDefaultCloseOperation(int i)时,i要为1或2 (个人觉得 2 好一点),

?

i=0:点击关闭窗口,不执行任何操作!

?

i=1:点击关闭窗口,隐藏窗口,不退出程序

?

i=2: 点击关闭窗口,窗口关闭,不退出程序

?

i=3:点击关闭窗口,窗口关闭,退出程序?

?

当点击关闭窗口时,要将窗口关闭或隐藏,同时不能退出程序,如果程序退出,用户就下线了。

?

(2)要给窗口加监听器,当窗口关闭时,将该窗口对应线程做相应处理。

?

? 我个人是将每一个与好友聊天的Runnable线程装入map中的,在此 , 就要将该线程从map?中移除。

?

?


1 楼 蒾ジ戀_+傳說 2011-08-09   路过~~~~~~留名,写的很好 2 楼 puqiyue 2011-12-14   人才啊  服务器和客户端 都有点头痛  谁叫叫我  815107057 3 楼 pywepe 2012-02-20   其实不需要那么多线程,再者swing不是线程安全的,与swing组件相关的操作必须在EDT中进行

热点排行