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),是則出現提示對話框,結束系統.
文章來源于領測軟件測試網 http://www.kjueaiud.com/