freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于java的聊天系統(tǒng)的設計與實現(xiàn)-資料下載頁

2025-06-24 23:50本頁面
  

【正文】 30try {int num 。// (true)。JProgressBar bar=()。()。(())。BufferedInputStream bos=new BufferedInputStream(new FileInputStream(f))。while((num = (b)) != 1){(b)。(m)。int value=LENGTH/10000。(()+value)。}(false)。// (0)。//發(fā)送完畢SimpleDateFormat s = new SimpleDateFormat(yyyyMMdd HH:mm:ss)。((new ()))。(4)。(m)。//在窗口上顯示發(fā)送成功(new Color(0,0,255), 文件+()+( +()/1000000+M)+發(fā)送成功+ \n)。} catch (FileNotFoundException e) {// TODO Autogenerated catch block()。} catch (IOException e) {// TODO Autogenerated catch block()。}}發(fā)送完成后,雙方的界面上都會顯示成功信息:31圖 59 文件傳輸成功圖客戶端接收文件的邏輯:文件的傳輸狀態(tài)被定義成了這幾種:0是不接受文件,1是接受文件,2請求發(fā)送文件,3文件傳輸中,4文件傳送完成客戶端接收文件是可根據(jù)這些狀態(tài),進行操作,關鍵代碼如下://請求發(fā)送包if(()==2){ //對話框 是否接收 int i=(chat, 確定接收 + ()+( +()+KB), 接收文件,)。 Integer sender=()。 Integer getter=()。 (sender)。 (getter)。 //同意就發(fā)送同意接收數(shù)據(jù)包 if(i==){ //打開保存文件對話框 JFileChooser jfc=new JFileChooser(c:/)。 ()。 int mod=(chat)。32 if(mod==){ //如果選擇了路徑 File f=()。 f=new File(()+/+())。 bos=new BufferedOutputStream(new FileOutputStream(f))。 (1)。 send(m)。 }else{ //選擇了取消或關閉對話框 (0)。 send(m)。 } }else{ (0)。 send(m)。 }}else if(()==3){//正在傳輸包byte b[]=()。//設置進度條().setVisible(true)。().setMaximum(()/10)。().setMinimum(0)。(b)。}else if (()==0){//不同意發(fā)送(chat, 對方拒絕接收文件, 通知, )。}else if (()==1){//同意發(fā)送(同意發(fā)送 )。()。}else if(()==4){(()+傳輸完成)。().setVisible(false)。(new Color(0,0,255), 文件+()+( +()/1000+M)+接收完成 +\n)。}}} 2)服務器端代碼:33服務端只負責轉發(fā),關鍵代碼如下:else if(()==()){Integer receiverAccount=()。ClientThread t=(receiverAccount)。(m)。} 用戶管理模塊 流程圖開始登陸用戶增刪改查 查看在線用戶 踢用戶下線結束圖 510 web 用戶登錄圖 關鍵代碼用戶管理的前臺頁面是 jsp 頁面, 在頁面中可以對用戶進行增刪改查。34圖 511 用戶管理圖關鍵代碼如下:以頁數(shù)列出用戶public ListUser findByLimit(int begin,int num){ListUser list=new ArrayListUser()。conn=getConnection()。 try {ps=(FIND_BY_Limit)。(1, begin)。(2, num)。rs=()。while(()){User u=rowMapper(rs)。(u)。}PreparedStatement p=(select count(*) from user)。rs=()。while(()){rowCount=(1)。}} catch (SQLException e) {// TODO Autogenerated catch block()。}finally{close()。}return list。}刪除用戶:public void delete(Integer account){conn=getConnection()。35 try {ps=(DELETE)。(1, account)。()。(delete over)。} catch (SQLException e) {// TODO Autogenerated catch block()。}finally{close()。} }踢用戶下線的邏輯也很簡單,關閉 socket,將服務器端所對應的線程停止,并且從線程集合中刪除改線程就可,關鍵代碼如下:(==========IOException==========)。()。//停止線程interrupt()。(getName()+下線)。//從線程集中刪去本線程((getName()))。//在線人數(shù)(在線人數(shù): +())。//發(fā)送數(shù)據(jù)包通知下線notifyOffline()。用戶被題下線后:圖 512 用戶下線圖 其他功能的實現(xiàn) 截圖功能的實現(xiàn)截圖類的核心是 JDK 中:Robot 類中 createScreenCapture(Rectangle screenRect) 創(chuàng)建36包含從屏幕中讀取的像素的圖像。先用new Robot().createScreenCapture(new Rectangle(().getScreenSize()))。截取全部屏幕的圖片,然后顯示出來,覆蓋住整個屏幕。然后監(jiān)聽鼠標事件,再用createScreenCapture(Rectangle screenRect)方法截圖 .主要代碼如下:public void mouseDragged(MouseEvent e) {int w=width。int h=height。// (x+ +y+ +width+ +height+ )。width=()x。height=()y。w=(wwidth?w:width)。h=(hheight?h:height)。//重繪的邊界要比真實的稍微大點//只repaint一定區(qū)域,防止屏幕閃爍repaint(x,y,w+2,h+2)。}如果點擊了鼠標右鍵則取消截圖,雙擊確定截圖完成public void mouseClicked(MouseEvent e) {//如果是鼠標右鍵的話if(()==){dispose()。}if(()==2){success()。dispose()。}} 聊天記錄功能的實現(xiàn)如果是圖片則顯示出,發(fā)送時間和圖片大小。如果是文件則顯示出請求發(fā)送時間,同意接收時間,接收完成時間,和文件大小。主要代碼如下:37public static void afterSend(Object o) {Message msg=(Message) o。try {File f = new File(c:/+().toString()+.txt)。if (!()) {()。}BufferedWriter bw=new BufferedWriter(new FileWriter(f,true))。if(().intValue()==){(()+ 發(fā)送消息給 +()+:+\n)。(()+\n)。(\n)。}else if(().intValue()==){(()+ 發(fā)送圖片給 +()+:+\n)。(圖片大小 :+().length +byte+\n)。(\n)。}else if(().intValue()==){if(()==2){(()+ 請求發(fā)送文件給 +()+:+\n)。(文件名 :+()+ 文件大小: +()+KB+\n)。}if(()==0){(()+ 拒絕接受文件 :+()+\n)。}if(()==1){(()+ 你同意接受文件 :+()+\n)。}if(()==4){(()+ 發(fā)送給 +()+的文件 :+()+發(fā)送完成 +\n)。(\n)。}}()。()。38} catch (IOException e) {// TODO Autogenerated catch block()。}} 服務端線程的實現(xiàn)在服務器上,截圖信息和文件信息都是進行簡單的轉發(fā):if(()==()){Integer receiverAccount=()。ClientThread t=(receiverAccount)。(m)。}轉發(fā)文字信息時會判斷用戶是否在線:if (() == ()) {(() + send to+ () + at + ())。Integer receiverAccount = ()。ClientThread t = (receiverAccount)。if (t == null) {//不在線就暫時存儲在服務器上(receiverAccount, m)。} else(m)。} 用戶界面的設計 登陸界面登陸界面的實現(xiàn)比較簡單,是 Jlabel ,JtextFeild,Jpanel等控件的集合39圖 513 用戶登錄界面 好友列表好友列表采用了絕對布局,用到了 CardLayout 和 JscrollPane:圖 514 好友列表界面40好友列表展開后:圖 515 好友列表展開界面 聊天界面雙擊好友頭像后,就會顯示出聊天界面:41圖 516 聊天界面42結語本系統(tǒng)采用 C/S 和 B/S 模式,聊天室頁面簡潔,操作便捷,穩(wěn)定可靠,性能優(yōu)良。本系統(tǒng)可以實現(xiàn)通訊系統(tǒng)最基本的兩個功能:一是雙方能夠互相收發(fā)信息,二是雙方能夠互傳文件。后臺還可以對用戶進行管理。這次課程設計用到了,Swing, Socket,JSP,Struts2 ,AJAX ,JDBC,Thread,JavaScript 等各種技術,采用 MySQL 作為數(shù)據(jù)庫,MyEclipse 作為開發(fā)工具。基本上包含了大學所學習 J2EE 和 J2SE 的所有知識。在課程設計的過程中,加強了對多線程的理解和掌控。通過這次的課程設計,我充分體會到學習理論知識的重要性,但更加體會到動手實踐的必要性。只有通過親身的動手實踐,才能發(fā)現(xiàn)并解決問題,才能真正領悟某一技術的精髓。我相信自己會在將來的軟件設計、開發(fā)過程中更進一步地學習,不斷提升自己的專業(yè)能力
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1