简易聊天java程序-无数据库有界面

本文介绍了一个使用Java编写的简易聊天程序,该程序无须数据库且带有用户界面。聊天室分为多人聊天和私聊模式,用户可以通过用户名进行私聊。程序在本地运行,服务器端会显示用户登录和下线信息,并允许剔除特定用户。代码结构清晰,包括Server、User和Client类,以及界面组件。需要注意的是,部分jar包可能需要单独下载。
摘要由CSDN通过智能技术生成

@论程序猿的自我修养----千年老妖

简易聊天java程序-无数据库有界面

聊天界面解析—

一.多人聊天室&&私聊聊天室简易效果运行图示:
(1)多人聊天室注册界面

此图为在这里插入图片描述

(2)客户上线互动聊天,进去聊天室之后可以判断选择你是要私聊某个人还是说要发给每个人。
使用规则:如果要私发给某一个人就正常发送完内容后+(-用户名)即可。就可以将消息发送给你要私聊的人。
如果要将此消息发送给所有人即不用添加用户名即可,正常发送。
在这里插入图片描述在这里插入图片描述

(3).服务器显示登录信息和下线信息
这里注意,我是在自己的本机进行试验的,所以IP地址都是本机地址

在这里插入图片描述
如图所示,要剔除520客户,即直接在服务器端输入即可,则其他用户就会收到该用户已被剔除的信息。
在这里插入图片描述

(4)如图所示为多人聊天界面截图
这里注意,用户的上线人数有服务器端控制

在这里插入图片描述
总结思路:
A.在之前多人聊天的基础上,服务器端首先进行一个判断,是要私聊还是多人聊。
B.判断私聊还是多人聊得依据是用户名,通过用户名匹配或者ip匹配来判断对方是否存在,如果匹配成功,说明该用户在线,即可给他私发信息,若不存在该用户,即此消息发送不成功。
C.确定如果要多人聊天,即不用匹配用户名,直接在聊天框中输入内容即可。
D.同理,用户上线下线,其他用户都知道,和发信息其他用户可以收到是同理。

代码实现
代码完善,需要注意的是,此程序是在eclipse中开发的,里面的一些jar包可能已下架,需要搜索下载该资源。
此图为该程序结构和所需jar包

在这里插入图片描述

  • server类
  • package com.server;

import java.io.;
import java.net.
;
import java.util.;
import java.awt.
;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import net.sf.json.JSONObject;

/**

  • 服务器类,继承JFrame,实现窗口化界面
    */
    public class Server extends JFrame {

    // 在线用户列表
    ArrayList clientList = new ArrayList();
    // 在线用户名列表
    ArrayList usernamelist = new ArrayList();
    // 创建一个信息显示框
    private JTextArea jta = new JTextArea();
    // 用于要踢除用户名的输入框
    private JTextField jtf=new JTextField();
    // 踢除用户名
    private String usernameOut=null;
    // 声明一个用户对象,该类里面有两个变量 socket,username;
    private User user = null;
    // 声明一个输出流
    DataOutputStream output = null;
    // 声明一个输入流
    DataInputStream input = null;

    public static void main(String[] args) {
    new Server();
    }

    /**

    • 服务器构造方法, 绘画图形界面 , 监听socket连接
      */
      public Server() {
      // 设置信息显示框版面
      setLayout(new BorderLayout());
      add(new JScrollPane(jta), BorderLayout.CENTER);
      jta.setEditable(false);
      jta.setFont(new Font("", 0, 18));

      //设置要踢除用户的输入框
      jtf.setFont(new Font("", 0, 18));

      final JPanel p = new JPanel();
      p.setLayout(new BorderLayout());
      JLabel jLabel = new JLabel(“输入要踢除用户的名称,按回车发送”);
      jLabel.setFont(new Font("", 0, 20));
      p.add(jLabel, BorderLayout.WEST);
      p.add(jtf, BorderLayout

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
PK利剑:14kb大小、单文件、纯缓存、无需任何数据库、实现踢人、审核发言、普通/VIP1/VIP2/管理员等多角色发言功能,支持框架入任何网页中操作。 测试体验步骤: 1、解压缩系统压缩包,得到Default.asp文件; 2、复制这个文件到有效的IIS目录中,在IE中输入地址访问; 3、或到阿赛工作室官网下载阿赛IIS服务器[http://77ya.com/Down/Show28.html],和Default.asp放在同个文件夹下面,双击Asai.exe运行即可; 4、打开系统,第一步从底部[匿名39371896 取名为]取个名字,点击[登录],跳转到发言窗口,输入内容即可聊天; 5、在聊天窗口中,输入一些自己规定的特殊字符即可进入管理功能,以系统默认特殊字符为例; 6、输入77yavipn或77yavipm可以成为VIP会员,发言时名字带颜色,特别醒目; 7、输入gun或ting可以控制屏幕滚动与停止; 8、输入77ya可以将自己变为管理员,接着输入guanli可进入管理员管理界面提供以下几个管理员工具:管理用户 | 审核内容 | 查看发言 | 返回发言 | 复位; 9、点击管理用户,打开用户列表页面,单击某个用户名,即可将某个用户踢出聊天室(用户列表显示的是用户编号,用户编号可以在聊天发言窗口,鼠标停放在发言用户的名字上时候,显示用户编号); 10、点击审核内容,打开发言审核功能,这个功能在您开启发言审核时才有作用; 11、点击复位,将清空所有留言内容,删除所有用户,聊天室变为初始状态,此功能可以快速清空聊天室所有内容; 主要功能及使用说明: 1、支持系统自动清理聊天记录; 2、支持管理员功能,在发言框中输入管理密钥即可进入管理模块; 3、管理员可以审核聊天内容; 4、管理员可以踢人(将某一聊天的会员加入黑名单),禁止发言; 5、支持自动审核显示功能与人工审核功能两种模式; 6、支持游客、普通用户、VIP用户、黄金VIP用户、管理员五种角色参与; 7、游客可以看到聊天内容; 8、普通用户发表聊天内容需要管理员审核才能显示,也可以设置为自动显示; 9、VIP用户发表聊天内容需要管理员审核才能显示,也可以设置为自动显示,名字的颜色和普通用户不一样; 10、黄金VIP用户可以直接发言,无需管理员审核就可显示,并且名字的颜色也有所不同; 11、管理员可以执行审核聊天内容,禁止某一用户发言的功能; 12、每个用户打开系统后自动获得一个编号,所有用户的编号都将在管理员的用户管理中显示,管理员可以通过点击用户编号直接禁止某人发言; 13、每个发言的用户都可以自己更改名字,发言时,编号会显示在名字上面,鼠标放在名字上就显示出该用户的编号,类似QQ号一样唯一; 14、增加超级复位功能,可以清空所有缓存数据,重启聊天系统,不需服务器支持; 15、加入SQL注入过滤功能,安全可靠; 16、支持自动向上滚屏显示,兼顾QQ用户的聊天模式,同时可以通过输入滚屏、停止滚屏密钥自由控制聊天窗口内容显示方式; 17、支持在一个空间上放置多个阿赛聊天系统,只需修改聊天系统标识即可; 18、正在的无刷新聊天显示方式,观感舒服; 19、只有一个文件,喜欢怎么移植都可以,兼容所有其他网站系统,不需要任何数据库支持,全缓存模式,高速、安全、可靠; 20、使用前请打开程序文件,修改前20行的内容,如何修改,都做了非常详细的说明。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值