资源简介
基于socket编写的聊天室程序,有私聊和群聊功能,限制同名用户登陆

代码片段和文件信息
package chat;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.titledBorder;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Client {
private Jframe frame;
private JTextField txt_port;
private JTextField txt_hostIp;
private JTextField txt_name;
private JButton btn_start;
private JButton btn_stop;
private JPanel northPanel;
private JTextArea textArea;
private JScrollPane rightScroll;
private JList userList;
private JScrollPane leftScroll;
private JSplitPane centerSplit;
private JComboBox comboBox;
private JButton btn_send;
private JPanel pane;
private JTextField textField;
private JPanel southPanel;
private DefaultListModel listModel;
private boolean isConnected = false;//初始状态为”未连接“
private Socket socket;
private PrintWriter writer; //输出流
private BufferedReader reader; //输入流
private MessageThread messageThread;// 负责接收消息的线程
private Map onLineUsers = new HashMap();// 所有在线用户
// 执行发送
public void send() {
if (!isConnected) { //如果没连接服务器则报错
JOptionPane.showMessageDialog(frame “还没有连接服务器,无法发送消息!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
String message = textField.getText().trim(); //发送消息
if (message == null || message.equals(““)) {
JOptionPane.showMessageDialog(frame “消息不能为空!“ “错误“
JOptionPane.ERROR_MESSAGE);
return;
}
sendMessage(frame.gettitle() + “@“ + comboBox.getSelectedItem() + “@“ + message);//发送的消息为客户机名+message
textArea.append(frame.gettitle()+“对“+comboBox.getSelectedItem()+“说:“+“\n“+message+“\n“);
textField.setText(null);//发送完消息后清空发送框
}
// 构造方法
public Client() {
textArea = new JTextArea();
textArea.setEditable(false);
textArea.setForeground(Color.blue);
textArea.setFont(new Font(“楷体“Font.PLAIN15));
textField = new JTextField();
txt_port = new JTextField(“8888“);//端口
txt_hostIp = new JTextField(“127.0.0.1“);//ip地址
txt_name = new JTextField(“a“);//用户名
btn_start = new JButton(“连接“);//连接按钮
btn_stop = new JButton(“断开“);//断开按钮
btn_send = new JButton(“发送“);//发送按钮
listModel = new DefaultListModel();//
userList = new JList(listModel);//用户列表
northPanel = new JPanel();
northPanel.setLayout(new GridLayout(1 8));
northPanel.add(new JLabel(“服务器端口“));
northPanel.add(txt_port);
northPanel.add(new JLabel(“服务器IP“));
northPanel.add(txt_hostIp);
northPanel.add(new JLabel(“用户名“));
northPanel.add(txt_name);
northPanel.add(btn_start);
northPanel.add(btn_stop);
northPanel.setBorder(new titledBorder(“设置“));
rightScroll = new JScrollPane(textArea);
rightScroll.setBorder(new titledBorder(“消息显示区“));//消息显示区
leftScroll = new JScrollPane(userList);
leftScroll.setBorder(ne
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2010-02-04 18:05 chatbox\.classpath
文件 383 2013-01-10 16:49 chatbox\.project
文件 956 2013-01-10 18:57 chatbox\bin\chat\Client$1.class
文件 626 2013-01-10 18:57 chatbox\bin\chat\Client$2.class
文件 623 2013-01-10 18:57 chatbox\bin\chat\Client$3.class
文件 2221 2013-01-10 18:57 chatbox\bin\chat\Client$4.class
文件 1753 2013-01-10 18:57 chatbox\bin\chat\Client$5.class
文件 748 2013-01-10 18:57 chatbox\bin\chat\Client$6.class
文件 1363 2013-01-10 18:57 chatbox\bin\chat\Client$7.class
文件 4382 2013-01-10 18:57 chatbox\bin\chat\Client$MessageThread.class
文件 9738 2013-01-10 18:57 chatbox\bin\chat\Client.class
文件 3321 2012-03-06 20:11 chatbox\bin\chat\msn.png
文件 955 2013-01-10 18:29 chatbox\bin\chat\Server$1.class
文件 736 2013-01-10 18:29 chatbox\bin\chat\Server$2.class
文件 623 2013-01-10 18:29 chatbox\bin\chat\Server$3.class
文件 626 2013-01-10 18:29 chatbox\bin\chat\Server$4.class
文件 2498 2013-01-10 18:29 chatbox\bin\chat\Server$5.class
文件 1720 2013-01-10 18:29 chatbox\bin\chat\Server$6.class
文件 4977 2013-01-10 18:29 chatbox\bin\chat\Server$ClientThread.class
文件 2993 2013-01-10 18:29 chatbox\bin\chat\Server$ServerThread.class
文件 8204 2013-01-10 18:29 chatbox\bin\chat\Server.class
文件 956 2013-01-10 19:01 chatbox\bin\chat\User.class
文件 13730 2013-01-11 08:29 chatbox\src\chat\Client.java
文件 3321 2012-03-06 20:11 chatbox\src\chat\msn.png
文件 14668 2013-01-10 15:52 chatbox\src\chat\Server.java
文件 509 2013-01-10 19:01 chatbox\src\chat\User.java
文件 31434 2013-01-11 08:28 Client.jar
文件 31433 2013-01-10 22:30 Server.jar
目录 0 2013-01-11 20:39 chatbox\bin\chat
目录 0 2013-01-11 20:39 chatbox\src\chat
............此处省略6个文件信息
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论