資源簡介
可以實現簡單的類似qq聊天的項目,所有的消息都是通過服務器的轉發來實現的,可以實現群聊,私聊,狀態的改變(包括在線、隱身、離線)
代碼片段和文件信息
package?cui.qq;
import?java.awt.BorderLayout;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseAdapter;
import?java.awt.event.MouseEvent;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.IOException;
import?java.io.objectInputStream;
import?java.io.objectOutputStream;
import?java.net.Socket;
import?java.net.UnknownHostException;
import?javax.swing.DefaultListModel;
import?javax.swing.JButton;
import?javax.swing.JComboBox;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JList;
import?javax.swing.JPanel;
import?javax.swing.JScrollPane;
import?javax.swing.JTextArea;
public?class?GuiClient?{
Jframe?jf?=?new?Jframe();
JTextArea?jtainput?=?new?JTextArea();
JScrollPane?jsp?=?new?JScrollPane(jtainput);
JTextArea?jtaoutput?=?new?JTextArea();
JScrollPane?jsp1?=?new?JScrollPane(jtaoutput);
JButton?jb?=?new?JButton(“send“);
JButton?jb_self?=?new?JButton(“私聊“);
JPanel?jp?=?new?JPanel();
JPanel?jp1?=?new?JPanel();
JPanel?jp2?=?new?JPanel();
Socket?sc;
objectOutputStream?oos;
Message?cm;
DefaultListModel?dlm?=?new?DefaultListModel();
JList?jl?=?new?JList(dlm);
JLabel?jl2?=?new?JLabel(“好友在線列表:“);
JPanel?jp_list?=?new?JPanel();
String[]?str?=?{“在線““離線““隱身“};
JComboBox?jcb?=?new?JComboBox(str);
public?GuiClient(String?clientname){
jp.setLayout(new?GridLayout(211010));
jp.add(jsp);
jp.add(jsp1);
jf.setSize(400500);
jf.setBounds(600?200?400?500);
jf.add(jpBorderLayout.CENTER);
jp1.add(jb);
jp1.add(jb_self);
jb_self.setEnabled(false);
jf.add(jp1BorderLayout.SOUTH);
jp2.setLayout(new?BorderLayout());
jp2.add(jl2BorderLayout.NORTH);
jp2.add(jlBorderLayout.CENTER);
jp2.add(jcbBorderLayout.SOUTH);
dlm.addElement(new?String(clientname));
jf.add(jp2BorderLayout.EAST);
jf.setVisible(true);
//選擇私聊對象,私聊按鈕才可用
jl.addMouseListener(new?MouseAdapter(){
public?void?mouseClicked(MouseEvent?arg0)?{
//?TODO?自動生成方法存根
jb_self.setEnabled(true);
}
});
//send按鈕(給服務器發信息)
jb.addActionListener(new?ActionListener(){
public?void?actionPerformed(ActionEvent?arg0)?{
//?TODO?自動生成方法存根
cm?=?new?Message(jf.gettitle()jtaoutput.getText());
try?{
oos.writeobject(cm);
}?catch?(IOException?e)?{
//?TODO?自動生成?catch?塊
e.printStackTrace();
}
jtaoutput.setText(““);
}
});
//私聊按鈕(帶有自己的姓名,消息,還有私聊對象的信息,并以“only”開頭,代表是私聊消息)
jb_self.addActionListener(new?ActionListener(){
public?void?actionPerformed(ActionEvent?arg0)?{
//?TODO?自動生成方法存根
cm?=?new?Message(?“only#“?+?jl.getSelectedValue()?+?“#“?+?sc.getLocalSocketAddress()?+?“#“+?jf.gettitle()?+?“#“jtaoutput.getText());
try?{
oos.writeobject(cm);
}?catch?(IOException?e)?{
//?TODO?自動生成?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????21915??2009-01-14?17:56??QQ項目\QQClient.jar
?????文件??????21919??2009-01-14?17:55??QQ項目\QQServer.jar
?????文件???????6223??2009-01-14?17:44??QQ項目\src\GuiClient.java
?????文件??????10158??2009-01-14?17:55??QQ項目\src\GuiServer.java
?????文件???????4133??2009-01-14?17:47??QQ項目\src\Login.java
?????文件????????461??2009-01-14?09:46??QQ項目\src\Message.java
?????文件????????656??2009-01-14?18:27??QQ項目\注意事項.txt
?????目錄??????????0??2009-01-14?18:17??QQ項目\src
?????目錄??????????0??2009-05-01?15:32??QQ項目
-----------?---------??----------?-----??----
????????????????65465????????????????????9
- 上一篇:學生信息管理系統 JSP MySQL
- 下一篇:java操作xm
l文件的一個簡單代碼
評論
共有 條評論