资源简介
可以实现简单的类似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文件的一个简单代码
相关资源
-
java操作xm
l文件的一个简单代码 - java多人五子棋源码
- java多线程编程 在主线程main中创建两
- JAVA计算器实验报告与源码
- 人事信息管理系统 java课程设计
- 学生信息管理系统 JAVA课程设计
- 自己用java写的计算器源代码(代码注
- 棋盘覆盖---JAVA版
- 语音识别 sphinx4 JAVA 教程
- 用Java实现TCP通信
- java SQLServer做的员工管理系统
- JAVA坦克大战游戏源代码
- 用Java编写的扫雷游戏源代码
- 采用TCP SOCKET技术编写C/S模式的java聊天
- 《java程序设计》书附源代码
- Java程序设计考试试卷和答案(共4套)
- java做的人事档案管理系统
- java 局域网数据包嗅探
- Java 透明按钮 Java透明按钮
- Java写的递归下降分析程序
- 北大青鸟accp5.0java第四章理论加上机作
- java用spring struts hibernate做的学生成绩
- jsp mysql tomcat学生信息管理系统
- 科研管理系统 java swing mysql
- java真实项目煤矿管理系统
- 基于JAVA的物业收费管理系统源代码
- 东南大学 JAVA课程设计 学生信息管理
- Java大作业 学生成绩管理系统
- java图片轮播代码 可控制
- jsp成绩管理系统jsp servlet javabean
评论
共有 条评论