![JAVA聊天程序設(shè)計代碼報告_第1頁](http://file4.renrendoc.com/view/b0a3252e4466db70bf4b4f5f8e5b76b2/b0a3252e4466db70bf4b4f5f8e5b76b21.gif)
![JAVA聊天程序設(shè)計代碼報告_第2頁](http://file4.renrendoc.com/view/b0a3252e4466db70bf4b4f5f8e5b76b2/b0a3252e4466db70bf4b4f5f8e5b76b22.gif)
![JAVA聊天程序設(shè)計代碼報告_第3頁](http://file4.renrendoc.com/view/b0a3252e4466db70bf4b4f5f8e5b76b2/b0a3252e4466db70bf4b4f5f8e5b76b23.gif)
![JAVA聊天程序設(shè)計代碼報告_第4頁](http://file4.renrendoc.com/view/b0a3252e4466db70bf4b4f5f8e5b76b2/b0a3252e4466db70bf4b4f5f8e5b76b24.gif)
![JAVA聊天程序設(shè)計代碼報告_第5頁](http://file4.renrendoc.com/view/b0a3252e4466db70bf4b4f5f8e5b76b2/b0a3252e4466db70bf4b4f5f8e5b76b25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
一.系統(tǒng)需求剖析之勘阻及廣創(chuàng)作網(wǎng)絡(luò)聊天室往常直稱聊天室,是一種人們能夠在線談話的網(wǎng)絡(luò)論壇,在同一聊天室的人們經(jīng)過廣播信息進行及時談話。在現(xiàn)在信息時代,愈來愈多的聊天工具被應(yīng)用,java語言是現(xiàn)在流行的網(wǎng)絡(luò)編程語言,它擁有面向?qū)ο?,與平臺沒關(guān),平安,多線程等特色。使用java語言不僅能夠?qū)崿F(xiàn)大型公司級的散布式應(yīng)用系統(tǒng),還可以夠為小型的的,嵌入式設(shè)施進行應(yīng)用程序的開發(fā)。面向?qū)ο蟮拈_發(fā)是現(xiàn)在世界最流行的開發(fā)方法,它不僅擁有更切近自然地語義,并且有益于軟件的保護和繼承,鍛煉我們嫻熟地應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計方法解決實質(zhì)問題的能力。本程序正是用java語言實現(xiàn)了簡單聊天功能。它是圖形界面,線程,流與文件系統(tǒng)等技術(shù)的綜合應(yīng)用。其界面主要采納了java.awt包,java.swing包等。二.系統(tǒng)整體設(shè)計因為本軟件知識一個聊天程序,程序只供給用戶之間的聊天功能,故對網(wǎng)絡(luò)傳輸數(shù)據(jù)要求不是很高,只需正常的傳輸速度就能夠了。數(shù)據(jù)管理IP地點(IP),端口(Port)本軟件采納Java語言編寫,Java語言是一種跨平臺的編程語言,因此本軟件對操控系統(tǒng)沒有特別的要求。而網(wǎng)絡(luò)傳輸方面采納TCP/IP網(wǎng)絡(luò)傳輸協(xié)議或許是RMI。1)本軟件客戶端與用戶共用一段程序。客戶端編譯運轉(zhuǎn)后,在窗口選擇偵聽。用戶編譯運轉(zhuǎn)后,在窗口選擇連結(jié)。2)本軟件實現(xiàn)的功能有同意服務(wù)器偵聽客戶端,客戶端連結(jié)到服務(wù)器同意服務(wù)區(qū)與客戶端之間進行聊天;同意服務(wù)器與客戶端改正布景顏色;同意服務(wù)器與客戶端改正字體顏色;5)服務(wù)器與客戶端時,會顯示內(nèi)容發(fā)送時間;6)同意服務(wù)器與客戶端用鼠標(biāo)點擊“發(fā)送”,按ENTER鍵均可發(fā)送內(nèi)容7)同意服務(wù)器與客戶端用鼠標(biāo)點擊封閉時封閉聊天窗口三.系統(tǒng)詳盡設(shè)計1)程序中引入的包:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;.*;importjava.io.*;2)代碼中自定義的類:類名:chatHouse繼承的類:JFrame實現(xiàn)的接口:ActionListener,Runnable作用:結(jié)構(gòu)服務(wù)器界面以及客戶端界面。定義的對象:TextAreata;JTextFieldip;JTextFieldport;JButtonbtn_server;JButtonbtn_client;JButtonbtn_backGroundCol;JButtonbtn_fontCol;JTextFieldsend_text;JButtonbtn_send;JButtonbtn_close;JLabelpic;Socketskt;結(jié)構(gòu)方法:publicchatHouse( )主要成員方法:publicvoidrun( )publicvoidactionPerformed(ActionEvente)publicvoiddoServer( )publicvoiddoSend( )2.源代碼[chatHouse.java]importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;.*;importjava.io.*;importjava.util.*;publicclasschatHouseextendsJFrameimplementsActionListener,Runnable{privateTextAreata;privateJTextFieldip;privateJTextFieldport;privateJButtonbtn_server;privateJButtonbtn_client;privateJButtonbtn_backGroundCol;privateJButtonbtn_fontCol;privateJTextFieldsend_text;privateJButtonbtn_send;privateJButtonbtn_close;privateJLabelpic;privateSocketskt;publicvoidrun( ){try{BufferedReaderbr=newInputStreamReader(skt.getInputStream( )));while(true){
BufferedReader(newStrings=br.readLine( );//if(s==null)break;ta.append(s+"\n");
從網(wǎng)絡(luò)讀}}catch(Exceptione){e.printStackTrace( );}}publicvoidactionPerformed(ActionEvente){if(e.getSource( )==btn_server){doServer( );}if(e.getSource( )==btn_client){doClient( );}if(e.getSource( )==btn_send){doSend( );}}publicvoiddoServer( ){try{ServerSocketserver=newServerSocket(Integer.parseInt(port.getText( )));skt=server.accept( );ta.append("連結(jié)成功!\n");newThread(this).start( );}catch(Exceptione){ta.append("服務(wù)器啟動失??!\n");}}publicvoiddoClient( ){try{skt=newSocket(ip.getText( ),Integer.parseInt(port.getText( )));ta.append("連結(jié)成功!\n");newThread(this).start( );}catch(Exceptione){ta.append("連結(jié)失敗!\n");}}publicvoiddoSend( ){Calendarc=Calendar.getInstance( );inty=c.get(c.YEAR);intM=c.get(c.MONTH)+1;intd=c.get(c.DAY_OF_MONTH);inth=c.get(c.HOUR_OF_DAY);intmm=c.get(c.MINUTE);intss=c.get(c.SECOND);try{PrintWriterpw=newPrintWriter(skt.getOutputStream( ));Strings=send_text.getText( );if(s==null)return;ta.append(y+""+M+""+d+""+h+":"+mm+":"+ss+"\n");ta.append(s+"\n");pw.println(y+""+M+""+d+""+h+":"+mm+":"+ss);pw.println(s);pw.flush( );send_text.setText("");}catch(Exceptione){ta.append("發(fā)送失?。n");}}publicchatHouse( ){super("聊天室");this.setBounds(100,100,550,430);Containercc=this.getContentPane( );JPanelp1=newJPanel( );cc.add(p1,BorderLayout.NORTH);JPanelp2=newJPanel( );cc.add(p2,BorderLayout.CENTER);JPanelp3=newJPanel( );cc.add(p3,BorderLayout.SOUTH);pic=newJLabel(newImageIcon("12.gif"));cc.add(pic,BorderLayout.EAST);p1.add(newJLabel("IP:"));ip=newJTextField("",10);p1.add(ip);p1.add(newJLabel("Port:"));port=newJTextField("7777",4);p1.add(port);btn_server=newJButton("p1.add(btn_server);
偵聽");btn_client=newJButton("p1.add(btn_client);
連結(jié)");btn_backGroundCol=newJButton("布風(fēng)景");p1.add(btn_backGroundCol);btn_fontCol=newJButton("字體顏色");p1.add(btn_fontCol);p2.setLayout(newBorderLayout( ))ta=newTextArea( );p2.add(ta,BorderLayout.CENTER);send_text=newJTextField("Hello.");p2.add(send_text,BorderLayout.SOUTH);btn_send=newJButton("發(fā)送");p3.add(btn_send,BorderLayout.WEST);btn_close=newJButton("封閉");p3.add(btn_close,BorderLayout.CENTER);//"封閉"按鈕監(jiān)聽器btn_close.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){System.exit(100);}});//布景變色監(jiān)聽btn_backGroundCol.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){JColorChooserchooser4=newJColorChooser( );Colorcolor=chooser4.showDialog(null,"",Color.yellow);ta.setBackground(color);
布景顏}});字體變色監(jiān)聽btn_fontCol.addActionListener(newActionListener( ){publicvoidactionPerformed(ActionEvente){JColorChooserchooser4=newJColorChooser( );Colorcolor=chooser4.showDialog(null,"字體顏色",Color.black);send_text.setForeground(color);ta.setForeground(color);}});按ENTER鍵可發(fā)送監(jiān)聽btn_server.addActionListener(this);btn_client.addActionListener(this);btn_send.addActionListener(this);setDefaultClo搜索引擎優(yōu)化peration(JFrame.EXIT_ON_CLOSE);send_text.addKeyListener(newKeyAdapter( ){publicvoidkeyPressed(KeyEvente){if(e.getKeyCode( )==KeyEvent.VK_ENTER)doSend( );}});}publicstaticvoidmain(String[]args){newchatHouse( ).setVisible(true);}}importjava.util.*;3.程序測試編譯運轉(zhuǎn)程序后,先選擇對方IP,選擇相同的Port。服務(wù)器先偵聽,客戶端再連結(jié)。連結(jié)成功,窗口會顯示“連結(jié)成功!”字樣。接下來就能夠聊天了。服務(wù)器與客戶端聊天。服務(wù)器與客戶端聊天。服務(wù)器將布景顏色設(shè)為粉紅,字體顏色設(shè)為藍(lán)色??蛻舳藢⒉季邦伾O(shè)為藍(lán)色,字體顏色設(shè)為紅色。四.小結(jié)1.經(jīng)過本次課程設(shè)計,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淺談EPC總承包模式下的造價管理與控制
- 2025年度住宅小區(qū)綠化工程承包合同范本-@-1
- 2025年新能源車輛配送及維護保養(yǎng)服務(wù)合同
- 勞務(wù)合同范本內(nèi)容
- 個人信譽合同范例
- 借款合同范例匯編
- 勞動終止合同范例
- 上海個人租賃合同范本
- 個人吊車轉(zhuǎn)讓合同范本
- 企業(yè)藥品采購合同范例
- 《少兒財商教育》課件
- 銷售人員培訓(xùn)課程課件
- 電子表格表格會計記賬憑證模板
- 制造過程優(yōu)化與工藝改進培訓(xùn)
- 46號抗磨液壓油MSDS
- 水磨石地面驗收標(biāo)準(zhǔn)
- MMPI14個量表得分題目號碼
- QC成果提高剪力墻線盒預(yù)埋安裝合格率
- 建筑工程施工質(zhì)量驗收規(guī)范檢驗批填寫全表格+示范填寫與說明
- 龍虎山正一日誦早晚課
- 車輛年審委托書下載
評論
0/150
提交評論