JAVA聊天室附完整代碼_第1頁
JAVA聊天室附完整代碼_第2頁
JAVA聊天室附完整代碼_第3頁
JAVA聊天室附完整代碼_第4頁
JAVA聊天室附完整代碼_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、精選文檔 專業(yè)課程設計I基于JAVA的談天室設計與實現(xiàn)一、課題內(nèi)容和要求基于網(wǎng)絡的文本交互軟件的設計和實現(xiàn),設計和實現(xiàn)一個簡潔的基于網(wǎng)絡的文本消息發(fā)送和接收軟件?;疽螅涸撥浖軐崿F(xiàn)文本消息發(fā)送和接收功能。提高要求(1):支持以多播方式發(fā)送文本消息,提高要求(2):性能穩(wěn)定,界面友好。按課程設計報告的要求寫出具體的設計和實現(xiàn)報告。二、設計思路分析談天室是一項進行文本交互的軟件,應用廣泛,并且有用性強的一個格外典型的人機交互系統(tǒng)。在信息世界里,談天工具的使用是格外頻繁的,如MSN、QQ、校內(nèi)通之類的談天工具很多人都正在使用。此次設計的談天室系統(tǒng)主要針對文本信息的傳送和接收,不能像QQ一樣進行圖

2、片、音頻、視頻等文件的傳輸。雖然其功能簡潔,但是在開發(fā)技術和過程中,能夠充分學習和使用JAVA的技術,進一步培育了面對對象程序設計的思想,加深對面對對象程序設計四大特性的理解。人們?nèi)粘I钪性絹碓蕉嗟厥褂谜勌焓疫@項應用來為自己的工作和學習服務。一個操作簡潔,界面友好、運行穩(wěn)定的談天室對于小型局域網(wǎng)的用戶可以起到很好的溝通作用。所謂談天室就是一個可以讓很多用戶同時相互通信的網(wǎng)上園地,個人用戶可以通過談天室將自己融入整個主流社會中。依據(jù)目前使用談天室的用戶需求顯示,用戶對于談天室主要有以下幾點要求:(1)談天功能:可以實時接收和發(fā)送信息,并能支持公聊和私聊的的方式,能夠查看談天記錄,談天過程中能對

3、字體、表情等進行設定等。(2)用戶功能:可以隨時注冊和登錄及注銷,并能選擇性加好友和刪除好友以及查看對方的開放信息,還能看到對方的登錄狀態(tài)。(3)文件傳輸功能:用戶可以共享資源,能發(fā)送及接收文件。(4)保密功能:用戶可以設定自己的保密狀態(tài),使某些信息對于其他用戶是不行見的。(5)系統(tǒng)穩(wěn)定:客戶端與服務端的連接穩(wěn)定,不消滅或者少消滅連接不上的狀況。三、概要設計 1、談天室的簡要功能介紹該簡易談天室是為很多寵愛談天的用戶開發(fā)設計的,和很多大型的網(wǎng)絡談天室相比該小談天室功能比較簡潔,但能實現(xiàn)基本的談天功能,點對多、點對點談天和基本的用戶功能,登錄、注銷、查看在線用戶等。(1) 用戶設置:功能描述:用

4、戶自定義自己的登錄名,成功設置后,服務端能接收到新設置的用戶名;(2) 登錄功能:功能描述:在服務端開啟的狀況下,用戶可以以自己自定義或者默認的登錄名和登錄地址端口登錄到客戶端,并能在服務器端顯示登錄狀態(tài);(3) 公聊:功能描述:用戶在談天室中可以選擇與“全部人”談天,談天室中的其他在線用戶可以正常接收并正確顯示公聊消息。(4) 私聊:功能描述:用戶可以選擇與談天室的在線用戶列表中的其他用戶談天。雙方的談天記錄對于談天室的其他用戶是不行見的。(5) 談天心情:功能描述:用戶在談天的過程中可以選擇相應的心情來表達自己的情感。(6) 系統(tǒng)消息:功能描述:服務端正常運行的過程中,在談天室的每一個用戶

5、都能接收服務器端發(fā)送的信息提示信息。 (7) 用戶的狀態(tài).功能描述:每一個客戶端用戶都可以實時看到目前其他在線用戶的狀態(tài)。(8) 用戶注銷:功能描述:用戶可以注銷自己的賬號,并重新登記登錄名和地址。(9) 用戶退出:功能描述:用戶可以在正常狀況下退出談天室。(10) 服務端把握:功能描述:只有在服務端開啟的狀況下,用戶才能登陸成功和談天;用戶設置的地址端口也必需與服務端的偵聽端口全都,否則不能登錄。2、模塊描述本談天室分為談天室服務端和談天室客戶端,服務端與客戶端之間通過套接口Socket(TCP)連接。在java中使用套接口相當簡潔,Java API為處理套接口的通信供應了一個類.Socke

6、t.,使得編寫網(wǎng)絡應用程序相對簡潔服務器接受多線程以滿足多用戶的懇求,通過JDBC與后臺數(shù)據(jù)庫連接,并通過創(chuàng)建一個ServerSocket對象來監(jiān)聽來自客戶的連接懇求,默認IP地址為:127.0.0.1默認端口為8888。(1) 談天室服務端模塊圖:談天室服務端端口服務啟動服務發(fā)送系統(tǒng)消息停止服務退出服務器消息顯示端口服務:輸入要偵聽的端口,默認為8888;啟動服務:啟動服務器,并開頭在設置的端口中偵聽,客戶端用戶可以登錄并開頭談天;停止服務:關閉服務器,偵聽結(jié)束??蛻舳擞脩舨荒茉僬勌?;發(fā)送系統(tǒng)消息:服務器端給全部人或者個別用戶發(fā)送消息。消息顯示:可以顯示全部用戶的談天記錄,和上線、下線信息。

7、退出服務器:退出程序,并停止服務;(2)談天室客戶端模塊圖:談天室客戶端連接設置用戶登錄退出發(fā) 送接收談天消 息用戶注銷用戶設置用戶設置:用戶可以設置自己的用戶名進行談天;連接設置:用戶可以設置自己的服務器的IP地址和端口號,默認的連接地址為:127.0.0.1:8888;用戶登錄:只能在談天室服務端已開啟的狀況下,用戶才能登錄,用戶登錄之后才能開頭談天,登錄后不能再修改用戶設置和連接設置;用戶注銷:退出談天,可以連續(xù)修改用戶設置和連接設置;發(fā)送和接收談天信息:用戶可以給全部人或者個別用戶發(fā)送信息,并能看到其他用戶發(fā)送給自己或全部人的消息;退出:關閉全部談天并退出客戶端。(3) 流程圖談天室服

8、務器端口服務啟動服務談天室客戶端登錄連接設置談天退出默認連接地址或用戶名 設置偵聽端口 默認端口:8888用戶設置 設置用戶名 設置IP地址和端口四、具體設計ActionListenerChatServer-port:public static in-serverSocket:ServerSocket-messageShow:JTextArea-userLinkList:UserLinkList-showStatus:JTextField+ ChatServer():public+init():public void +startService():public void+stopServic

9、e():public void +sendStopToAll():public void+sendMsgToAll(String):public void+ sendSystemMessage():public voidJFrameThreadServerListen- server: ServerSocket- userLinkList :UserLinkList- isStop: public Boolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)ServerReceive-textare

10、a:JTextArea- userLinkList :UserLinkList- isStop: public Boolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkList)1、談天室服務器端設計:ServerListen- server: ServerSocket- userLinkList :UserLinkList- isStop: public Boolean+ServerListen(ServerSocket,JComboBox,JTextArea,JTextField,UserLinkLi

11、st)談天室服務端主要包括7個文件,它們的功能如下:(1)ChatServer.java:包含名為ChatServer的public類,其主要功能為定義服務器端的界面,添加大事偵聽與大事處理。調(diào)用ServerListen類來實現(xiàn)服務端用戶上線與下線的偵聽,調(diào)用ServerReceive類來實現(xiàn)服務器端的消息的收發(fā)。(2)ServerListen.java:該類實現(xiàn)服務端用戶上線與下線的偵聽。該類對用戶上線下線的偵聽是通過調(diào)用用戶鏈表類(UserLinkList)來實現(xiàn)的,當用戶上線與下線狀況發(fā)生變化時,該類會對主類的界面進行相應的修改。(3)ServerReceive.java:該類是實現(xiàn)服務

12、器端的消息的收發(fā)的類。該類分別定義了向某用戶及全部人發(fā)送消息的方法,發(fā)送的消息會顯示在主界面類的界面上。(4)PortConf.java:該類繼承自JDialog,是用戶對服務器端偵聽端口進行修改配置的類。(5)Node.java:用戶鏈表的節(jié)點類,定義了鏈表中的用戶。該類與前面所講的鏈表節(jié)點Node類的功能相當。(6)UserLinkList.java:用戶鏈表節(jié)點的具體實現(xiàn)類。該類通過構(gòu)造函數(shù)構(gòu)造用戶鏈表,定義了添加用戶,刪除用戶、返回用戶數(shù)、依據(jù)用戶名查找用戶、依據(jù)索引查找用戶這5個方法。(7)Help.java:服務端程序的掛念類。2、談天室客戶端設計:ActionListenerCh

13、atClient-port:public static in-serverSocket:ServerSocket-messageShow:JTextArea-userLinkList:UserLinkList-showStatus:JTextField+ ChatClient():public+init():public void +Connect():public void+DisConnect():public void +SendMessage():public voidJFrameThreadClientReceive- socket: Socket-output:ObjectOutp

14、utStream-input:ObjectInputStream +ClientReceive(Socket,ObjectOutputStream,ObjectInputStream,JComboBox,JTextArea,JTextField )談天室客戶端主要包括5個文件,它們的功能如下:(1)ChatClient.java:包含名為ChatClient的public類,其主要功能為定義客戶端的界面,添加大事偵聽與大事處理。該類定義了Connect()與DisConnect()方法實現(xiàn)與服務器的連接與斷開連接。當?shù)卿浀街付ǖ姆掌鲿r,調(diào)用ClientReceive類實現(xiàn)消息收發(fā),同時該類還

15、定義了SendMessage()方法來向其他用戶發(fā)送帶有表情的消息或者靜靜話。(2)ClientReceive.java:該類是實現(xiàn)服務器端與客戶端消息收發(fā)的類。(3)ConnectConf.java:該類繼承自JDialog,是用戶對所要連接的服務器IP及偵聽端口進行修改配置的類。(4)UserConf.java:該類繼承自JDialog,是用戶對連接到服務器所顯示的用戶名進行修改配置的類。(5)Help.java:客戶端程序的掛念類。五、測試數(shù)據(jù)及其結(jié)果分析1、首先運行ChatServer工程文件,會消滅如下畫面2、選擇端口設置,可以設置您要偵聽的端口號,不設置將默認端口號為8888;3、

16、選擇啟動服務,服務器開頭在您剛才設置的端口中偵聽;4、運行ChatClient工程文件,打開如下畫面5、選擇用戶設置可以設置自己的登錄名6、選擇連接設置可以設置您的IP地址和端口號7、選擇登錄進入談天室并可以開頭跟全部人或者個別其他用戶談天,其中可以選擇心情等;8、在服務端也可以選擇給全部人或者個別用戶發(fā)送消息;留意:客戶端只有在服務端開啟的狀況下才能正常談天。9、多人談天的服務器端與客戶端狀況代碼如下:package liaotian;/* * 用戶鏈表 */public class UserLinkList Node root;Node pointer;int count;/* * 構(gòu)造用

17、戶鏈表 */public UserLinkList()root = new Node();root.next = null;pointer = null;count = 0;/* * 添加用戶 */public void addUser(Node n)pointer = root;while(pointer.next != null)pointer = pointer.next;pointer.next = n;n.next = null;count+;/* * 刪除用戶 */public void delUser(Node n)pointer = root;while(pointer.nex

18、t != null)if(pointer.next = n)pointer.next = n.next;count -;break;pointer = pointer.next;/* * 返回用戶數(shù) */public int getCount()return count;/* * 依據(jù)用戶名查找用戶 */public Node findUser(String username)if(count = 0) return null;pointer = root;while(pointer.next != null)pointer = pointer.next;if(pointer.username

19、.equalsIgnoreCase(username)return pointer;return null;/* * 依據(jù)索引查找用戶 */public Node findUser(int index)if(count = 0) return null;if(index 0) return null;pointer = root;int i = 0;while(i index + 1)if(pointer.next != null)pointer = pointer.next;elsereturn null;i+;return pointer;package liaotian;import j

20、ava.awt.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.*;/* * 談天客戶端的主框架類 */public class ChatClient extends JFrame implements ActionListener/* * */private static final long serialVersionUID = 1L;String ip = 127.0.0.1;/連接到服務端的ip地址int port = 8888;/連接到服務端的端口號String userName = 狂狂

21、;/用戶名int type = 0;/0表示未連接,1表示已連接JComboBox combobox;/選擇發(fā)送消息的接受者JTextArea messageShow;/客戶端的信息顯示JScrollPane messageScrollPane;/信息顯示的滾動條JLabel express,sendToLabel,messageLabel ;JTextField clientMessage;/客戶端消息的發(fā)送JCheckBox checkbox;/靜靜話JComboBox actionlist;/表情選擇JButton clientMessageButton;/發(fā)送消息JTextField

22、showStatus;/顯示用戶連接狀態(tài)Socket socket;ObjectOutputStream output;/網(wǎng)絡套接字輸出流ObjectInputStream input;/網(wǎng)絡套接字輸入流ClientReceive recvThread;/建立菜單欄JMenuBar jMenuBar = new JMenuBar();/建立菜單組JMenu operateMenu = new JMenu (操作(O);/建立菜單項JMenuItem loginItem = new JMenuItem (用戶登錄(I),new ImageIcon(face/98.gif);JMenuItem l

23、ogoffItem = new JMenuItem (用戶注銷(L),new ImageIcon(face/icon.gif);JMenuItem exitItem=new JMenuItem (退出(X),new ImageIcon(face/smile.gif);JMenu conMenu=new JMenu (設置(C);JMenuItem userItem=new JMenuItem (用戶設置(U),new ImageIcon(face/messenger_big.gif);JMenuItem connectItem=new JMenuItem (連接設置(C),new ImageI

24、con(face/Uabrand.gif);JMenu helpMenu=new JMenu (掛念(H);JMenuItem helpItem=new JMenuItem (掛念(H),new ImageIcon(face/HelpCenter.gif);/建立工具欄JToolBar toolBar = new JToolBar();/建立工具欄中的按鈕組件JButton loginButton;/用戶登錄JButton logoffButton;/用戶注銷JButton userButton;/用戶信息的設置JButton connectButton;/連接設置JButton exitBu

25、tton;/退出按鈕/框架的大小Dimension faceSize = new Dimension(400, 600);JPanel downPanel ;GridBagLayout girdBag;GridBagConstraints girdBagCon;public ChatClient()init();/初始化程序/添加框架的關閉大事處理this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.pack();/設置框架的大小this.setSize(faceSize);this.setVisible(true);setIconI

26、mage(getToolkit().getImage(face/love.gif);/設置運行時窗口的位置Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation( (int) (screenSize.width - faceSize.getWidth() / 2, (int) (screenSize.height - faceSize.getHeight() / 2);this.setResizable(false);this.setTitle(談天室客戶端); /設置標題/為操作菜

27、單欄設置熱鍵VoperateMenu.setMnemonic(O);/為用戶登錄設置快捷鍵為ctrl+iloginItem.setMnemonic (I);loginItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_I,InputEvent.CTRL_MASK);/為用戶注銷快捷鍵為ctrl+llogoffItem.setMnemonic (L);logoffItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_L,InputEvent.CTRL_MASK);/為退出快捷

28、鍵為ctrl+xexitItem.setMnemonic (X);exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_X,InputEvent.CTRL_MASK);/為設置菜單欄設置熱鍵CconMenu.setMnemonic(C);/為用戶設置設置快捷鍵為ctrl+uuserItem.setMnemonic (U);userItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK);/為連接設置設置快捷鍵為ctrl+cc

29、onnectItem.setMnemonic (C);connectItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK);/為掛念菜單欄設置熱鍵HhelpMenu.setMnemonic(H);/為掛念設置快捷鍵為ctrl+phelpItem.setMnemonic (H);helpItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_H,InputEvent.CTRL_MASK);/* * 程序初始化函數(shù) */public v

30、oid init()Container contentPane = getContentPane();contentPane.setLayout(new BorderLayout();/添加菜單欄operateMenu.add (loginItem);operateMenu.add (logoffItem);operateMenu.addSeparator();operateMenu.add (exitItem);jMenuBar.add (operateMenu);conMenu.add (userItem);conMenu.addSeparator();conMenu.add (conne

31、ctItem);jMenuBar.add (conMenu);helpMenu.add (helpItem);jMenuBar.add (helpMenu);setJMenuBar (jMenuBar);/初始化按鈕loginButton = new JButton(登錄);logoffButton = new JButton(注銷);userButton = new JButton(用戶設置 );connectButton = new JButton(連接設置 );exitButton = new JButton(退出 );/當鼠標放上顯示信息loginButton.setToolTipTe

32、xt(連接到指定的服務器);logoffButton.setToolTipText(與服務器斷開連接);userButton.setToolTipText(設置用戶信息);connectButton.setToolTipText(設置所要連接到的服務器信息);/將按鈕添加到工具欄toolBar.add(userButton);toolBar.add(connectButton);toolBar.addSeparator();/添加分隔欄toolBar.add(loginButton);toolBar.add(logoffButton);toolBar.addSeparator();/添加分隔欄

33、toolBar.add(exitButton);contentPane.add(toolBar,BorderLayout.NORTH);checkbox = new JCheckBox(靜靜話);checkbox.setSelected(false);actionlist = new JComboBox();actionlist.addItem(微笑地);actionlist.addItem(興奮地);actionlist.addItem(輕輕地);actionlist.addItem(生氣地);actionlist.setSelectedIndex(0);/初始時loginButton.se

34、tEnabled(true);logoffButton.setEnabled(false);/為菜單欄添加大事監(jiān)聽loginItem.addActionListener(this);logoffItem.addActionListener(this);exitItem.addActionListener(this);userItem.addActionListener(this);connectItem.addActionListener(this);helpItem.addActionListener(this);/添加按鈕的大事偵聽loginButton.addActionListener

35、(this);logoffButton.addActionListener(this);userButton.addActionListener(this);connectButton.addActionListener(this);exitButton.addActionListener(this);combobox = new JComboBox();combobox.insertItemAt(全部人,0);combobox.setSelectedIndex(0);messageShow = new JTextArea();messageShow.setEditable(false);/添

36、加滾動條messageScrollPane = new JScrollPane(messageShow,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);messageScrollPane.setPreferredSize(new Dimension(400,400);messageScrollPane.revalidate();clientMessage = new JTextField(23);clientMessage.setEnabled(false);clientM

37、essageButton = new JButton();clientMessageButton.setText(發(fā)送);/添加系統(tǒng)消息的大事偵聽clientMessage.addActionListener(this);clientMessageButton.addActionListener(this);sendToLabel = new JLabel(發(fā)送至:);express = new JLabel( 表情: );messageLabel = new JLabel(發(fā)送消息:);downPanel = new JPanel();girdBag = new GridBagLayout(

38、);downPanel.setLayout(girdBag);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 0;girdBagCon.gridy = 0;girdBagCon.gridwidth = 5;girdBagCon.gridheight = 2;girdBagCon.ipadx = 5;girdBagCon.ipady = 5;JLabel none = new JLabel( );girdBag.setConstraints(none,girdBagCon);downPanel.add(none);girdBagC

39、on = new GridBagConstraints();girdBagCon.gridx = 0;girdBagCon.gridy = 2;girdBagCon.insets = new Insets(1,0,0,0);/girdBagCon.ipadx = 5;/girdBagCon.ipady = 5;girdBag.setConstraints(sendToLabel,girdBagCon);downPanel.add(sendToLabel);girdBagCon = new GridBagConstraints();girdBagCon.gridx =1;girdBagCon.g

40、ridy = 2;girdBagCon.anchor = GridBagConstraints.LINE_START;girdBag.setConstraints(combobox,girdBagCon);downPanel.add(combobox);girdBagCon = new GridBagConstraints();girdBagCon.gridx =2;girdBagCon.gridy = 2;girdBagCon.anchor = GridBagConstraints.LINE_END;girdBag.setConstraints(express,girdBagCon);dow

41、nPanel.add(express);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 3;girdBagCon.gridy = 2;girdBagCon.anchor = GridBagConstraints.LINE_START;/girdBagCon.insets = new Insets(1,0,0,0);/girdBagCon.ipadx = 5;/girdBagCon.ipady = 5;girdBag.setConstraints(actionlist,girdBagCon);downPanel.add(actio

42、nlist);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 4;girdBagCon.gridy = 2;girdBagCon.insets = new Insets(1,0,0,0);/girdBagCon.ipadx = 5;/girdBagCon.ipady = 5;girdBag.setConstraints(checkbox,girdBagCon);downPanel.add(checkbox);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 0;gi

43、rdBagCon.gridy = 3;girdBag.setConstraints(messageLabel,girdBagCon);downPanel.add(messageLabel);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 1;girdBagCon.gridy = 3;girdBagCon.gridwidth = 3;girdBagCon.gridheight = 1;girdBag.setConstraints(clientMessage,girdBagCon);downPanel.add(clientMessa

44、ge);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 4;girdBagCon.gridy = 3;girdBag.setConstraints(clientMessageButton,girdBagCon);downPanel.add(clientMessageButton);showStatus = new JTextField(35);showStatus.setEditable(false);girdBagCon = new GridBagConstraints();girdBagCon.gridx = 0;girdB

45、agCon.gridy = 5;girdBagCon.gridwidth = 5;girdBag.setConstraints(showStatus,girdBagCon);downPanel.add(showStatus);contentPane.add(messageScrollPane,BorderLayout.CENTER);contentPane.add(downPanel,BorderLayout.SOUTH);/關閉程序時的操作this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEve

46、nt e)if(type = 1)DisConnect();System.exit(0););/* * 大事處理 */public void actionPerformed(ActionEvent e) Object obj = e.getSource();if (obj = userItem | obj = userButton) /用戶信息設置/調(diào)出用戶信息設置對話框UserConf userConf = new UserConf(this,userName);userConf.setVisible(true);userName = userConf.userInputName;else

47、if (obj = connectItem | obj = connectButton) /連接服務端設置/調(diào)出連接設置對話框ConnectConf conConf = new ConnectConf(this,ip,port);conConf.setVisible(true);ip = conConf.userInputIp;port = conConf.userInputPort;else if (obj = loginItem | obj = loginButton) /登錄Connect();else if (obj = logoffItem | obj = logoffButton)

48、 /注銷DisConnect();showStatus.setText();else if (obj = clientMessage | obj = clientMessageButton) /發(fā)送消息SendMessage();clientMessage.setText();else if (obj = exitButton | obj = exitItem) /退出int j=JOptionPane.showConfirmDialog(this,真的要退出嗎?,退出,JOptionPane.YES_OPTION,JOptionPane.QUESTION_MESSAGE);if (j = J

49、OptionPane.YES_OPTION)if(type = 1)DisConnect();System.exit(0);else if (obj = helpItem) /菜單欄中的掛念/調(diào)出掛念對話框Help helpDialog = new Help(this);helpDialog.setVisible(true);public void Connect()trysocket = new Socket(ip,port);catch (Exception e)JOptionPane.showConfirmDialog(this,不能連接到指定的服務器。n請確認連接設置是否正確。,提示,

50、JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);return;tryoutput = new ObjectOutputStream(socket.getOutputStream();output.flush();input = new ObjectInputStream(socket.getInputStream() );output.writeObject(userName);output.flush();recvThread = new ClientReceive(socket,output,input,combobox,messageShow,showStatus);recvThread.start();loginButton.setEnabled(false);loginItem.setEnabled(false);userButton.setEnabled(false);user

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論