class IcqID extends Thread //公用类,为每个好友产生一个实例,当IcqID.newMsg==true时自启动,能处理收到和发送信息.
class Sender extends Thread //公用类,专门与服务器进行通信,接受String型命令,以线程序方式运行,执行结束返回一个Result对象
class SubmitID extends Frame //可用来注册,修改和查看用户信息.
class Seek extends Frame //负责查找好友.被MainFrame的右键菜单调用.
class MyDialog extends Frame //产生一个对话框
class SysInfo extends Frame //为MainFrame提供用户设置变量,读取和保存jICQ.ini文件.
class HttpImage extends Thread //在MainFrame被构造时调用并启动,负责为SMsg提供广告图片getImg()和超级链接getHttp()
二.系统原理
1.主要类及主要方法,重要变量:
系统启动后调用 jICQ 中的main()方法,出更登录框,系统后台查找主机地址(服务器有多个可能域名).等待正确登录,如果号码密码验证通过,则初始化jICQ主界面,并启动主界面的后台线程.jICQ.class的使命完成,接后的工作由MainFrame完成.
MainFrame 即为主界面,继承Frame并实现线程,初始化时为整个系统初始化变量,并把所有头像图片装入headImg[]中,并处理头像图片数据变白后放入alphaHead[]数组中.
----其run()方法完成登录服务器的全过程,并启动多个其它线程([1]Sender.onlineMon()方法主要是TCP/IP连接服务器一直到程序结束,[2]RMsg.class类主要是监听UDP端口,接收来自其它用户的聊天内容),当登录完成后,成为调度线程直到结束,执行比如有聊天信息收到使主窗口图标闪烁(调用checkID()),自动更新好友的个人信息checkID(),如果出果重绘窗口请求(repaintEvt==true),则调用repaint()重绘屏幕;监视Sender.onlineMon()是否与服务器断线,是则重连;监视服务器是否发来他人用自已这个号码在登录(duplogon==true),是则出现提示对话框,结束系统.
文章来源于领测软件测试网 https://www.ltesting.net/