資源簡(jiǎn)介
用Java編寫(xiě)的QQ聊天程序,僅供大家參考、學(xué)習(xí)與交流。

代碼片段和文件信息
package?thisMyServer;
import?java.awt.BorderLayout;
import?java.awt.FlowLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.PrintStream;
import?java.io.PrintWriter;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?javax.swing.DefaultListModel;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JList;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
import?javax.swing.JTextField;
import?javax.swing.WindowConstants;
public?class?MyClient?{
Jframe?frand?=?new?Jframe(“QQ客戶端“);//窗口
JButton?jb2?=?new?JButton(“群聊“);//按鈕
JLabel?fri?=?new?JLabel(“我的好友?(0)“);//標(biāo)簽
JPanel?frijp?=?new?JPanel();//容器
DefaultListModel?dlm?=?new?DefaultListModel();//?
JList?jl?=?new?JList(dlm);//文本列表
Socket?so;//套接字
InputStream?is;//輸入流
BufferedReader?br;//(為InputStream等流起緩沖的流)
OutputStream?os;//輸出流
PrintStream?ps;//(為OutputStream等流起緩沖的流)
String?prefix?=?“@對(duì)所有人&“;//用來(lái)區(qū)分是群聊還是悄悄話。
SendMessage?sm?=?new?SendMessage();//初始化一個(gè)線程的類(lèi)
String?userName?=?““;//用來(lái)存儲(chǔ)標(biāo)題的字符串。
public?MyClient()?{
//輸入一個(gè)名稱
userName?=?javax.swing.JOptionPane.showInputDialog(“請(qǐng)輸入您的姓名:“);
frijp.setLayout(new?BorderLayout());//布局
frijp.add(fri?“North“);//添加標(biāo)簽
frijp.add(jl);//添加列表
frand.add(frijp);//添加容器
frand.add(jb2?“South“);//添加按鈕
frand.setBounds(800?300?250?500);//設(shè)置窗體大小及其位置。
frand.setVisible(true);//設(shè)置窗體為可見(jiàn)
frand.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//默認(rèn)關(guān)閉為結(jié)束程序
/**
?*?自動(dòng)連接服務(wù)器。
?*/
boolean?ifsucc?=?connect(“127.0.0.1“?3333);//調(diào)用方法連接服務(wù)器。
// 初始化對(duì)話框。
sm.s?=?so;
sm.prefix?=?prefix;
sm.start();//啟動(dòng)線程
if?(ifsucc)?{
//?sm.jta.setText(“接入成功\n“);
/**
?*?不斷接收服務(wù)器上的好友。
?*/
MessListen?ml?=?new?MessListen();
ml.br?=?br;
//?ml.jta?=?jta;
ml.start();
}?else?{
//?sm.jta.setText(“連接失敗!\n“);
}
/**
?*?列表的監(jiān)聽(tīng)
?*?雙擊好友菜單時(shí)彈出私聊對(duì)話框。(彈出單人聊天對(duì)話框)
?*/
jl.addMouseListener(new?MouseAdapter()?{
public?void?mouseClicked(MouseEvent?e)?{
if?(e.getClickCount()?==?2)?{
jl.locationToIndex(e.getPoint());
sm.prefix?=?jl.getSelectedValue()?+?“##單人&&“;
sm.frame.setVisible(true);
}
}
});
/**
?*?單擊群聊時(shí)彈出對(duì)話框。(彈出與所有人聊天的對(duì)話框)
?*/
jb2.addActionListener(new?ActionListener()?{
public?void?actionPerformed(ActionEvent?arg0)?{
sm.prefix?=?“@對(duì)所有人&“;
sm.frame.setVisible(true);
}
});
}
/**
?*?連接到服務(wù)器的方法。
?*?
?*?@param?goip
?*????????????得到服務(wù)器IP
?*?@param?goport
?*????????????得到服務(wù)器端口號(hào)
?*?@return?True:已連接到服務(wù)器。False:連接服務(wù)器失敗。
?*/
public?boolean?co
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1634??2009-09-11?20:10??QQ聊天室\說(shuō)明.txt
?????文件????1165824??2009-09-11?20:09??QQ聊天室\PPT參考\項(xiàng)目過(guò)程講解.ppt
?????文件??????16570??2009-08-20?04:33??QQ聊天室\項(xiàng)目\聊天服務(wù)器r.jar
?????文件??????16577??2009-08-20?04:33??QQ聊天室\項(xiàng)目\聊天客戶端r.jar
?????文件???????6911??2009-08-20?03:44??QQ聊天室\源代碼\MyClient.java
?????文件???????7145??2009-08-20?04:32??QQ聊天室\源代碼\MyServer.java
?????目錄??????????0??2009-09-11?20:10??QQ聊天室\PPT參考
?????目錄??????????0??2009-09-11?20:10??QQ聊天室\項(xiàng)目
?????目錄??????????0??2009-09-11?20:10??QQ聊天室\源代碼
?????目錄??????????0??2009-09-11?20:10??QQ聊天室
-----------?---------??----------?-----??----
??????????????1214661????????????????????10
評(píng)論
共有 條評(píng)論