• 大小: 54KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-23
  • 语言: Java
  • 标签: java  多线程  聊天室  

资源简介

使用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

评论

共有 条评论