• 大小: 46.23 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-17
  • 语言: Java
  • 标签: qq  聊天  java  

资源简介

可以实现简单的类似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


评论

共有 条评论