资源简介
使用Java开发的简易多人聊天室
应付作业开发的聊天室
功能:
群聊
私聊
动态更新用户列表
bug:
没有密码
没考虑两个用户使用相同用户名的情况 等等,其他N多个bug
代码片段和文件信息
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.titledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Client {
private Jframe frame;
private JList userList;
private JTextArea textArea;
private JTextField textField;
private JButton btn_send;
private JPanel southPanel;
private JScrollPane rightScroll;
private JScrollPane leftScroll;
private JSplitPane centerSplit;
private JTabbedPane tabs;
private JPanel leftPanel;
private DefaultListModel listModel;
private Socket socket;
private PrintWriter writer;
private BufferedReader reader;
private MessageThread messageThread;// 负责接收消息的线程
private String name = “Null“;
private ArrayList contentList = new ArrayList();
private String currentTabName = “Public“;
// 主方法程序入口
public static void main(String[] args) {
if (args.length == 3) {
String ip = args[0];
int port = Integer.parseInt(args[1]);
String nickName = args[2];
new Client(ip port nickName);
} else {
System.err.println(“启动方式:java -jar client.jar server_ip server_port nickname“);
}
}
// 执行发送
public void send() {
String message = textField.getText().trim();
if (message == null || message.equals(““)) {
JOptionPane.showMessageDialog(frame “消息不能为空!“ “错误“ JOptionPane.ERROR_MESSAGE);
return;
}
// sendMessage(frame.gettitle() + “@“ + “ALL“ + “@“ + message);
// 发送群聊消息
if (currentTabName.equals(“Public“)) {
sendMessage(“Public@“ + this.name + “@ALL@“ + message);
} else {
sendMessage(“Private@“ + name + “@“ + currentTabName + “@“ + message);
}
textField.setText(null);
}
/**
* 构造方法
*
* @param ip
* 服务器ip
* @param port
* 端口
* @param nickName
* 昵称
*/
public Client(String ip int port String nickName) {
// 创建组件
textArea = new JTextArea();
textArea.setEditable(false);
textArea.setForeground(Color.blue);
textField = new JTextField();
btn_send = new JButton(“发送“);
listModel = new DefaultListModel();
userList = new JLis
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-11-15 03:40 simple-chattingroom-master\
文件 1057 2018-11-15 03:40 simple-chattingroom-master\LICENSE
文件 487 2018-11-15 03:40 simple-chattingroom-master\README.md
目录 0 2018-11-15 03:40 simple-chattingroom-master\demo\
目录 0 2018-11-15 03:40 simple-chattingroom-master\demo\本机客户端\
文件 10594 2018-11-15 03:40 simple-chattingroom-master\demo\本机客户端\client.jar
文件 67 2018-11-15 03:40 simple-chattingroom-master\demo\本机客户端\张三上线.bat
文件 63 2018-11-15 03:40 simple-chattingroom-master\demo\本机客户端\李四上线.bat
文件 65 2018-11-15 03:40 simple-chattingroom-master\demo\本机客户端\王五上线.bat
目录 0 2018-11-15 03:40 simple-chattingroom-master\demo\本机服务器\
文件 7879 2018-11-15 03:40 simple-chattingroom-master\demo\本机服务器\server.jar
文件 48 2018-11-15 03:40 simple-chattingroom-master\demo\本机服务器\启动服务器.bat
文件 12897 2018-11-15 03:40 simple-chattingroom-master\screenshot-1.png
文件 16698 2018-11-15 03:40 simple-chattingroom-master\screenshot-2.png
目录 0 2018-11-15 03:40 simple-chattingroom-master\simple-chattingroom-client\
文件 10351 2018-11-15 03:40 simple-chattingroom-master\simple-chattingroom-client\Client.java
目录 0 2018-11-15 03:40 simple-chattingroom-master\simple-chattingroom-server\
目录 0 2018-11-15 03:40 simple-chattingroom-master\simple-chattingroom-server\src\
文件 8884 2018-11-15 03:40 simple-chattingroom-master\simple-chattingroom-server\src\Server.java
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 简单多线程一对一聊天程序
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
评论
共有 条评论